You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61076 lines
2.8 MiB
61076 lines
2.8 MiB
/// @file xed-enc-groups.c
|
|
|
|
// This file was automatically generated.
|
|
// Do not edit this file.
|
|
|
|
/*BEGIN_LEGAL
|
|
|
|
Copyright (c) 2021 Intel Corporation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
END_LEGAL */
|
|
#include "xed-internal-header.h"
|
|
#include "xed-encode-private.h"
|
|
#include "xed-enc-operand-lu.h"
|
|
#include "xed-operand-accessors.h"
|
|
#include "xed-encoder.h"
|
|
xed_bool_t xed_encode_group_0(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][4] = {
|
|
/*FADD */ { 3, 1, 2, 0},
|
|
/*FDIV */ { 24, 22, 23, 21},
|
|
/*FDIVR */ { 28, 26, 27, 25},
|
|
/*FMUL */ { 7, 5, 6, 4},
|
|
/*FSUB */ { 16, 14, 15, 13},
|
|
/*FSUBR */ { 20, 18, 19, 17},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_1(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*FCOMP */ { 9, 10, 11, 12, 8},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_2(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*FCOM */ { 31, 32, 30, 29},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_3(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*FLD */ { 34, 36, 33, 35},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80REAL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_4(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*FST */ { 39, 38, 37},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_5(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*FSTP */ { 43, 44, 45, 42, 40, 41},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80REAL) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_6(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[7][1] = {
|
|
/*FADDP */ { 156},
|
|
/*FDIVP */ { 162},
|
|
/*FDIVRP */ { 161},
|
|
/*FMULP */ { 157},
|
|
/*FSTPNCE */ { 46},
|
|
/*FSUBP */ { 160},
|
|
/*FSUBRP */ { 159},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_7(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*FLDENV */ { 47, 50, 48, 51, 49, 52, 53},
|
|
/*FNSTENV */ { 55, 58, 56, 59, 57, 60, 61},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM14);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM28);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM14);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM28);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM14);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM28);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM28);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_8(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*FLDCW */ { 54},
|
|
/*FNSTCW */ { 62},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_9(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*FXCH */ { 63, 64, 65},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_10(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[121][1] = {
|
|
/*CLAC */ {2481},
|
|
/*CLC */ {1112},
|
|
/*CLD */ {1116},
|
|
/*CLGI */ {2044},
|
|
/*CLI */ {1114},
|
|
/*CLTS */ {1123},
|
|
/*CLZERO */ {2057},
|
|
/*CMC */ {1111},
|
|
/*CPUID */ {1295},
|
|
/*EMMS */ {1272},
|
|
/*ENCLS */ {2484},
|
|
/*ENCLU */ {2483},
|
|
/*ENCLV */ {2497},
|
|
/*ENDBR32 */ {2439},
|
|
/*ENDBR64 */ {2440},
|
|
/*F2XM1 */ { 78},
|
|
/*FABS */ { 68},
|
|
/*FCHS */ { 67},
|
|
/*FCOMPP */ { 158},
|
|
/*FCOS */ { 93},
|
|
/*FDECSTP */ { 84},
|
|
/*FDISI8087_NOP */ { 134},
|
|
/*FEMMS */ {1988},
|
|
/*FENI8087_NOP */ { 133},
|
|
/*FINCSTP */ { 85},
|
|
/*FLD1 */ { 71},
|
|
/*FLDL2E */ { 73},
|
|
/*FLDL2T */ { 72},
|
|
/*FLDLG2 */ { 75},
|
|
/*FLDLN2 */ { 76},
|
|
/*FLDPI */ { 74},
|
|
/*FLDZ */ { 77},
|
|
/*FNCLEX */ { 130},
|
|
/*FNINIT */ { 131},
|
|
/*FNOP */ { 66},
|
|
/*FPATAN */ { 81},
|
|
/*FPREM */ { 86},
|
|
/*FPREM1 */ { 83},
|
|
/*FPTAN */ { 80},
|
|
/*FRNDINT */ { 90},
|
|
/*FSCALE */ { 91},
|
|
/*FSETPM287_NOP */ { 132},
|
|
/*FSIN */ { 92},
|
|
/*FSINCOS */ { 89},
|
|
/*FSQRT */ { 88},
|
|
/*FTST */ { 69},
|
|
/*FUCOMPP */ { 114},
|
|
/*FWAIT */ { 929},
|
|
/*FXAM */ { 70},
|
|
/*FXTRACT */ { 82},
|
|
/*FYL2X */ { 79},
|
|
/*FYL2XP1 */ { 87},
|
|
/*GETSEC */ {1942},
|
|
/*HLT */ {1110},
|
|
/*INSB */ { 793},
|
|
/*INT1 */ {1109},
|
|
/*INT3 */ {1074},
|
|
/*INVD */ {1391},
|
|
/*LAHF */ { 945},
|
|
/*LFENCE */ { 763},
|
|
/*MCOMMIT */ {2063},
|
|
/*MFENCE */ { 764},
|
|
/*MWAIT */ { 755},
|
|
/*MWAITX */ {2062},
|
|
/*NOP2 */ {1969},
|
|
/*NOP3 */ {1970},
|
|
/*NOP4 */ {1971},
|
|
/*NOP5 */ {1972},
|
|
/*NOP6 */ {1973},
|
|
/*NOP7 */ {1974},
|
|
/*NOP8 */ {1975},
|
|
/*NOP9 */ {1976},
|
|
/*PAUSE */ { 912},
|
|
/*RDMSR */ {1170},
|
|
/*RDPKRU */ {5458},
|
|
/*RDPMC */ {1171},
|
|
/*RDPRU */ {2064},
|
|
/*RDTSC */ {1169},
|
|
/*RDTSCP */ { 760},
|
|
/*REPE_SCASB */ {1042},
|
|
/*REPNE_SCASB */ {1043},
|
|
/*REP_XCRYPTCBC */ {1980},
|
|
/*REP_XCRYPTCFB */ {1982},
|
|
/*REP_XCRYPTCTR */ {1981},
|
|
/*REP_XCRYPTECB */ {1979},
|
|
/*REP_XCRYPTOFB */ {1983},
|
|
/*REP_XSHA1 */ {1984},
|
|
/*REP_XSHA256 */ {1985},
|
|
/*REP_XSTORE */ {1978},
|
|
/*RSM */ {1625},
|
|
/*SAHF */ { 944},
|
|
/*SAVEPREVSSP */ {2446},
|
|
/*SCASB */ {1044},
|
|
/*SERIALIZE */ {7043},
|
|
/*SETSSBSY */ {2447},
|
|
/*SFENCE */ { 761},
|
|
/*STAC */ {2482},
|
|
/*STC */ {1113},
|
|
/*STD */ {1117},
|
|
/*STGI */ {2043},
|
|
/*STI */ {1115},
|
|
/*STOSB */ { 996},
|
|
/*TLBSYNC */ {2071},
|
|
/*UD2 */ {1400},
|
|
/*VMCALL */ { 743},
|
|
/*VMFUNC */ {5443},
|
|
/*VMLAUNCH */ { 744},
|
|
/*VMMCALL */ {2040},
|
|
/*VMRESUME */ { 745},
|
|
/*VMSAVE */ {2042},
|
|
/*VMXOFF */ { 746},
|
|
/*WBNOINVD */ {6845},
|
|
/*WRMSR */ {1168},
|
|
/*WRPKRU */ {5459},
|
|
/*XEND */ {5447},
|
|
/*XGETBV */ {1934},
|
|
/*XRESLDTRK */ {7041},
|
|
/*XSETBV */ {1935},
|
|
/*XSTORE */ {1977},
|
|
/*XSUSLDTRK */ {7042},
|
|
/*XTEST */ {5449},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'VTX', 'VTX', 'VTX', 'VTX', 'MONITOR', 'RDTSCP', 'SSE', 'SSE2', 'SSE2', 'I186', 'PAUSE', 'X87', 'LAHF', 'LAHF', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I286REAL', 'PENTIUMREAL', 'PENTIUMREAL', 'PENTIUMREAL', 'RDPMC', 'PENTIUMMMX', 'I486REAL', 'I486REAL', 'PPRO', 'I486', 'XSAVE', 'XSAVE', 'SMX', 'I86', 'FAT_NOP', 'FAT_NOP', 'FAT_NOP', 'FAT_NOP', 'FAT_NOP', 'FAT_NOP', 'FAT_NOP', 'VIA_PADLOCK_RNG', 'VIA_PADLOCK_RNG', 'VIA_PADLOCK_AES', 'VIA_PADLOCK_AES', 'VIA_PADLOCK_AES', 'VIA_PADLOCK_AES', 'VIA_PADLOCK_AES', 'VIA_PADLOCK_SHA', 'VIA_PADLOCK_SHA', '3DNOW', 'SVM', 'SVM', 'SVM', 'SVM', 'CLZERO', 'MONITORX', 'MCOMMIT', 'RDPRU', 'AMD_INVLPGB', 'CET', 'CET', 'CET', 'CET', 'SMAP', 'SMAP', 'SGX', 'SGX', 'SGX_ENCLV', 'VMFUNC', 'RTM', 'RTM', 'PKU', 'PKU', 'WBNOINVD', 'TSX_LDTRK', 'TSX_LDTRK', 'SERIALIZE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_11(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][2] = {
|
|
/*FIADD */ { 95, 94},
|
|
/*FICOM */ { 99, 98},
|
|
/*FICOMP */ { 101, 100},
|
|
/*FIDIV */ { 107, 106},
|
|
/*FIDIVR */ { 109, 108},
|
|
/*FIMUL */ { 97, 96},
|
|
/*FISUB */ { 103, 102},
|
|
/*FISUBR */ { 105, 104},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_12(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[14][1] = {
|
|
/*FCMOVB */ { 110},
|
|
/*FCMOVBE */ { 112},
|
|
/*FCMOVE */ { 111},
|
|
/*FCMOVNB */ { 126},
|
|
/*FCMOVNBE */ { 128},
|
|
/*FCMOVNE */ { 127},
|
|
/*FCMOVNU */ { 129},
|
|
/*FCMOVU */ { 113},
|
|
/*FCOMI */ { 136},
|
|
/*FCOMIP */ { 167},
|
|
/*FUCOM */ { 154},
|
|
/*FUCOMI */ { 135},
|
|
/*FUCOMIP */ { 166},
|
|
/*FUCOMP */ { 155},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FCMOV', 'FCMOV', 'FCMOV', 'FCMOV', 'FCMOV', 'FCMOV', 'FCMOV', 'FCMOV', 'PPRO', 'PPRO', 'X87', 'X87', 'PPRO', 'PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_13(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*FILD */ { 117, 116, 115},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64INT);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_14(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*FISTP */ { 125, 124, 123},
|
|
/*FISTTP */ { 119, 120, 118},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64INT) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE3X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE3X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE3', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_15(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*FIST */ { 122, 121},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_16(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*FNSAVE */ { 147, 144, 148, 145, 149, 150, 146},
|
|
/*FRSTOR */ { 140, 137, 141, 138, 142, 143, 139},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM108);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM94);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM108);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM94);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM108);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM108);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM94);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_17(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*FNSTSW */ { 152, 151},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_18(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*FFREE */ { 153},
|
|
/*FFREEP */ { 165},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['X87', 'X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_19(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*FBLD */ { 163},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80DEC);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_20(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*FBSTP */ { 164},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80DEC) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ST0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['X87']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_21(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][6] = {
|
|
/*ADC_LOCK */ { 220, 221, 216, 219, 217, 218},
|
|
/*ADD_LOCK */ { 172, 173, 168, 171, 169, 170},
|
|
/*OR_LOCK */ { 196, 197, 192, 195, 193, 194},
|
|
/*SBB_LOCK */ { 244, 245, 240, 243, 241, 242},
|
|
/*SUB_LOCK */ { 292, 293, 288, 291, 289, 290},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_22(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][18] = {
|
|
/*ADC */ { 239, 238, 231, 235, 233, 237, 230, 232, 227, 223, 234, 229, 225, 236, 222, 228, 224, 226},
|
|
/*ADD */ { 191, 190, 183, 187, 185, 189, 182, 184, 179, 175, 186, 181, 177, 188, 174, 180, 176, 178},
|
|
/*CMP */ { 353, 352, 345, 349, 347, 351, 344, 346, 341, 337, 348, 343, 339, 350, 336, 342, 338, 340},
|
|
/*SBB */ { 263, 262, 255, 258, 257, 260, 254, 256, 251, 247, 259, 253, 249, 261, 246, 252, 248, 250},
|
|
/*SUB */ { 311, 310, 303, 306, 305, 308, 302, 304, 299, 295, 307, 301, 297, 309, 294, 300, 296, 298},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_23(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][18] = {
|
|
/*OR */ { 215, 214, 207, 211, 209, 213, 206, 208, 203, 199, 210, 205, 201, 212, 198, 204, 200, 202},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_24(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*AND_LOCK */ { 268, 269, 264, 267, 265, 266},
|
|
/*XOR_LOCK */ { 316, 317, 312, 315, 313, 314},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_25(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][18] = {
|
|
/*AND */ { 287, 286, 279, 282, 281, 284, 278, 280, 275, 271, 283, 277, 273, 285, 270, 276, 272, 274},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_26(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][18] = {
|
|
/*XOR */ { 335, 334, 327, 330, 329, 332, 326, 328, 323, 319, 331, 325, 321, 333, 318, 324, 320, 322},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_27(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*POP */ { 358, 356, 357, 359, 360, 361, 355, 354},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_DS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ES);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_FS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_GS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_28(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][12] = {
|
|
/*RCL */ { 395, 397, 394, 396, 391, 387, 393, 389, 390, 386, 392, 388},
|
|
/*RCR */ { 407, 409, 406, 408, 403, 399, 405, 401, 402, 398, 404, 400},
|
|
/*ROL */ { 371, 373, 370, 372, 367, 363, 369, 365, 366, 362, 368, 364},
|
|
/*ROR */ { 383, 385, 382, 384, 379, 375, 381, 376, 378, 374, 380, 377},
|
|
/*SAR */ { 455, 457, 454, 456, 451, 447, 453, 449, 450, 446, 452, 448},
|
|
/*SHR */ { 443, 445, 442, 444, 439, 435, 441, 437, 438, 434, 440, 436},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I186', 'I186', 'I186', 'I186', 'I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I186', 'I186', 'I186', 'I186', 'I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I186', 'I186', 'I186', 'I186', 'I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I186', 'I186', 'I186', 'I186', 'I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_29(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][24] = {
|
|
/*SHL */ { 427, 429, 431, 433, 426, 428, 430, 432, 419, 421, 411, 413, 423, 425, 415, 417, 418, 420, 410, 412, 422, 424, 414, 416},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][20]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][21]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ONE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][22]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][23]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_30(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][14] = {
|
|
/*TEST */ { 471, 470, 467, 469, 466, 468, 460, 461, 464, 465, 458, 459, 462, 463},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_31(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][2] = {
|
|
/*DEC_LOCK */ { 513, 514},
|
|
/*INC_LOCK */ { 506, 507},
|
|
/*NEG_LOCK */ { 478, 479},
|
|
/*NOT_LOCK */ { 472, 473},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_32(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][4] = {
|
|
/*DIV */ { 499, 501, 498, 500},
|
|
/*IDIV */ { 503, 505, 502, 504},
|
|
/*MUL */ { 485, 487, 484, 486},
|
|
/*NEG */ { 481, 483, 480, 482},
|
|
/*NOT */ { 475, 477, 474, 476},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_33(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*IMUL */ { 489, 491, 488, 490, 497, 495, 493, 496, 494, 492},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_34(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*DEC */ { 519, 516, 518, 515, 517},
|
|
/*INC */ { 512, 509, 511, 508, 510},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_35(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*CALL_NEAR */ { 522, 523, 521, 520},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP32_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CET_NO_TRACK_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CET_NO_TRACK_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_36(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*JMP */ { 528, 526, 527, 529, 525, 524},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CET_NO_TRACK_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CET_NO_TRACK_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_37(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CALL_FAR */ { 928, 927},
|
|
/*JMP_FAR */ { 531, 530},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_PTR && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_ptr(xes) == 1) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM16_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_P2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_38(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*PUSH */ { 535, 537, 534, 536, 540, 539, 538, 541, 542, 533, 532},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_CS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_DS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_ES);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_FS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_GS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_39(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*SLDT */ { 544, 543},
|
|
/*SMSW */ { 558, 557},
|
|
/*STR */ { 546, 545},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I286PROTECTED', 'I286PROTECTED', 'I286REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I286PROTECTED', 'I286PROTECTED', 'I286REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_40(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][2] = {
|
|
/*LLDT */ { 548, 547},
|
|
/*LMSW */ { 560, 559},
|
|
/*LTR */ { 550, 549},
|
|
/*VERR */ { 552, 551},
|
|
/*VERW */ { 554, 553},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I286PROTECTED', 'I286PROTECTED', 'I286PROTECTED', 'I286PROTECTED', 'I286REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['I286PROTECTED', 'I286PROTECTED', 'I286PROTECTED', 'I286PROTECTED', 'I286REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_41(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][2] = {
|
|
/*LGDT */ { 556, 555},
|
|
/*LIDT */ { 750, 749},
|
|
/*SGDT */ { 748, 747},
|
|
/*SIDT */ { 756, 757},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_S);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I286REAL', 'I286REAL', 'I286REAL', 'I286REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_S64);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I286REAL', 'I286REAL', 'I286REAL', 'I286REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_42(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][4] = {
|
|
/*BT */ { 564, 563, 562, 561},
|
|
/*BTC */ { 582, 581, 580, 579},
|
|
/*BTR */ { 576, 575, 574, 573},
|
|
/*BTS */ { 570, 569, 568, 567},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I386', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I386', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I386', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['I386', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_43(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*BTC_LOCK */ { 578, 577},
|
|
/*BTR_LOCK */ { 572, 571},
|
|
/*BTS_LOCK */ { 566, 565},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_44(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*VMCLEAR */ { 583},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_45(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*CLRSSBSY */ {2438},
|
|
/*RSTORSSP */ {2445},
|
|
/*VMPTRLD */ { 584},
|
|
/*VMPTRST */ { 585},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['VTX', 'VTX', 'CET', 'CET']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_46(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*VMXON */ { 586},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_47(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CMPXCHG8B */ { 589, 590},
|
|
/*CMPXCHG8B_LOCK*/ { 587, 588},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['PENTIUMREAL', 'PENTIUMREAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['PENTIUMREAL', 'PENTIUMREAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_48(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*CMPXCHG16B */ { 592},
|
|
/*CMPXCHG16B_LOCK*/ { 591},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['CMPXCHG16B', 'CMPXCHG16B']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_49(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][22] = {
|
|
/*MOV */ { 611, 612, 613, 614, 610, 609, 597, 602, 600, 606, 604, 608, 598, 599, 605, 593, 601, 595, 603, 607, 594, 596},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
|
|
(xed3_operand_get_index(xes) == XED_REG_INVALID);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
|
|
(xed3_operand_get_index(xes) == XED_REG_INVALID);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_SB(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMMv_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
|
|
(xed3_operand_get_index(xes) == XED_REG_INVALID);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
|
|
(xed3_operand_get_index(xes) == XED_REG_INVALID);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_SEG(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_SEG_MOV(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
xed_encode_ntluf_SEG(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_SEG_MOV(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][20]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][21]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SIMMz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_50(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][6] = {
|
|
/*PSLLD */ { 648, 645, 647, 650, 646, 649},
|
|
/*PSLLQ */ { 660, 657, 659, 662, 658, 661},
|
|
/*PSLLW */ { 630, 627, 629, 632, 628, 631},
|
|
/*PSRAD */ { 642, 639, 641, 644, 640, 643},
|
|
/*PSRAW */ { 624, 621, 623, 626, 622, 625},
|
|
/*PSRLD */ { 636, 633, 635, 638, 634, 637},
|
|
/*PSRLQ */ { 654, 651, 653, 656, 652, 655},
|
|
/*PSRLW */ { 618, 615, 617, 620, 616, 619},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_51(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*PSLLDQ */ { 664},
|
|
/*PSRLDQ */ { 663},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_52(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*FXRSTOR */ { 666},
|
|
/*FXRSTOR64 */ { 668},
|
|
/*FXSAVE */ { 665},
|
|
/*FXSAVE64 */ { 667},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MFPXENV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FXSAVE', 'FXSAVE', 'FXSAVE64', 'FXSAVE64']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_53(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*LDMXCSR */ { 669},
|
|
/*STMXCSR */ { 670},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSEMXCSR', 'SSEMXCSR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_54(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][1] = {
|
|
/*CLFLUSH */ { 762},
|
|
/*PREFETCHNTA */ { 671},
|
|
/*PREFETCHT0 */ { 672},
|
|
/*PREFETCHT1 */ { 673},
|
|
/*PREFETCHT2 */ { 674},
|
|
/*PREFETCH_EXCLUSIVE*/ {1961},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['SSE_PREFETCH', 'SSE_PREFETCH', 'SSE_PREFETCH', 'SSE_PREFETCH', 'CLFSH', 'PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_55(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][60] = {
|
|
/*NOP */ { 700, 699, 701, 702, 730, 707, 708, 704, 705, 706, 675, 676, 677, 678, 680, 682, 683, 684, 688, 696, 703, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 741, 679, 681, 685, 686, 687, 695, 711, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 742, 709, 710},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][20]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][21]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][22]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][23]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][24]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][25]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][26]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][27]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][28]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][29]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][30]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][31]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][32]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][33]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][34]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][35]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][36]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][37]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][38]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][39]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][40]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][41]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][42]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][43]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][44]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['FAT_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][45]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][46]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][47]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][48]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][49]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][50]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][51]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][52]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][53]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][54]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][55]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][56]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][57]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][58]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][59]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_56(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*MONITOR */ { 752, 751, 754, 753},
|
|
/*MONITORX */ {2059,2058,2061,2060},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_easz(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['MONITOR', 'MONITORX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_easz(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['MONITOR', 'MONITORX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['MONITOR', 'MONITORX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) == 3);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['MONITOR', 'MONITORX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_57(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][1] = {
|
|
/*CLDEMOTE */ {2496},
|
|
/*INVLPG */ { 758},
|
|
/*PREFETCHWT1 */ {5565},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I486REAL', 'CLDEMOTE', 'PREFETCHWT1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_58(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[17][1] = {
|
|
/*CDQE */ { 916},
|
|
/*CLUI */ {7022},
|
|
/*CQO */ { 923},
|
|
/*IRETQ */ {1083},
|
|
/*REPE_SCASQ */ {1063},
|
|
/*REPNE_SCASQ */ {1064},
|
|
/*SCASQ */ {1065},
|
|
/*SEAMCALL */ {7044},
|
|
/*SEAMOPS */ {7045},
|
|
/*SEAMRET */ {7046},
|
|
/*STOSQ */ {1017},
|
|
/*STUI */ {7024},
|
|
/*SWAPGS */ { 759},
|
|
/*SYSRET */ {1124},
|
|
/*SYSRET64 */ {1125},
|
|
/*TESTUI */ {7025},
|
|
/*UIRET */ {7026},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE', 'UINTR', 'UINTR', 'UINTR', 'UINTR', 'TDX', 'TDX', 'TDX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_59(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][1] = {
|
|
/*LOADIWKEY */ {7020},
|
|
/*MOVHLPS */ { 765},
|
|
/*MOVLHPS */ { 768},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE', 'SSE', 'KEYLOCKER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_60(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*MOVHPS */ { 770, 769},
|
|
/*MOVLPS */ { 767, 766},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_61(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[7][1] = {
|
|
/*AAA */ { 773},
|
|
/*AAS */ { 774},
|
|
/*DAA */ { 771},
|
|
/*DAS */ { 772},
|
|
/*INTO */ {1076},
|
|
/*SALC */ {1086},
|
|
/*SYSRET_AMD */ {2038},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'AMD']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_62(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][2] = {
|
|
/*POPA */ { 779, 780},
|
|
/*POPAD */ { 781, 782},
|
|
/*POPFD */ { 940, 941},
|
|
/*PUSHA */ { 775, 776},
|
|
/*PUSHAD */ { 777, 778},
|
|
/*PUSHFD */ { 934, 933},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I386', 'I186', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I386', 'I186', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_63(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*BOUND */ { 783, 785, 784, 786},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_A16);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_A32);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_A16);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_A32);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_64(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*ARPL */ { 788, 787},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR16_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I286PROTECTED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
xed_encode_ntluf_GPR16_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I286PROTECTED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_65(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*MOVSXD */ { 790, 789},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRz_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Z);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_66(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*REP_INSB */ { 791, 792},
|
|
/*REP_STOSB */ { 994, 995},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I186', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I186', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_67(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*REP_INSW */ { 794, 797, 795, 798, 796, 799},
|
|
/*REP_STOSD */ {1006,1009,1007,1010,1008,1011},
|
|
/*REP_STOSW */ { 997,1000, 998,1001, 999,1002},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_68(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[17][3] = {
|
|
/*CBW */ { 913, 914, 915},
|
|
/*CDQ */ { 924, 925, 926},
|
|
/*CWD */ { 920, 921, 922},
|
|
/*CWDE */ { 917, 918, 919},
|
|
/*INSW */ { 800, 801, 802},
|
|
/*IRET */ {1077,1078,1079},
|
|
/*IRETD */ {1080,1081,1082},
|
|
/*POPF */ { 937, 938, 939},
|
|
/*PUSHF */ { 930, 931, 932},
|
|
/*REPE_SCASD */ {1054,1055,1056},
|
|
/*REPE_SCASW */ {1045,1046,1047},
|
|
/*REPNE_SCASD */ {1057,1058,1059},
|
|
/*REPNE_SCASW */ {1048,1049,1050},
|
|
/*SCASD */ {1060,1061,1062},
|
|
/*SCASW */ {1051,1052,1053},
|
|
/*STOSD */ {1012,1013,1014},
|
|
/*STOSW */ {1003,1004,1005},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I186', 'I86', 'I386', 'I86', 'I386', 'I86', 'I86', 'I86', 'I386', 'I86', 'I86', 'I86', 'I386', 'I386', 'I386', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I186', 'I86', 'I386', 'I86', 'I386', 'I86', 'I86', 'I86', 'I386', 'I86', 'I86', 'I86', 'I386', 'I386', 'I386', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I186', 'I86', 'I386', 'I86', 'I386', 'I86', 'I86', 'I86', 'I386', 'I86', 'I86', 'I86', 'I386', 'I386', 'I386', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_69(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*REP_INSD */ { 803, 807, 804, 808, 805, 806, 809, 810},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_70(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*INSD */ { 811, 812, 813, 814},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_71(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*REP_LODSB */ {1018,1019},
|
|
/*REP_OUTSB */ { 815, 816},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I186', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I186', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_72(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][1] = {
|
|
/*CMPSB */ { 972},
|
|
/*LODSB */ {1020},
|
|
/*OUTSB */ { 817},
|
|
/*REPE_CMPSB */ { 970},
|
|
/*REPNE_CMPSB */ { 971},
|
|
/*XLAT */ {1087},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['I186', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_73(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*REP_LODSD */ {1030,1033,1031,1034,1032,1035},
|
|
/*REP_LODSW */ {1021,1024,1022,1025,1023,1026},
|
|
/*REP_OUTSW */ { 818, 821, 819, 822, 820, 823},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I186', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_74(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[9][3] = {
|
|
/*CMPSD */ { 988, 989, 990},
|
|
/*CMPSW */ { 979, 980, 981},
|
|
/*LODSD */ {1036,1037,1038},
|
|
/*LODSW */ {1027,1028,1029},
|
|
/*OUTSW */ { 824, 825, 826},
|
|
/*REPE_CMPSD */ { 982, 983, 984},
|
|
/*REPE_CMPSW */ { 973, 974, 975},
|
|
/*REPNE_CMPSD */ { 985, 986, 987},
|
|
/*REPNE_CMPSW */ { 976, 977, 978},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['I186', 'I86', 'I86', 'I86', 'I386', 'I386', 'I386', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['I186', 'I86', 'I86', 'I86', 'I386', 'I386', 'I386', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['I186', 'I86', 'I86', 'I86', 'I386', 'I386', 'I386', 'I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_75(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*REP_OUTSD */ { 827, 831, 828, 832, 829, 830, 833, 834},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_76(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*OUTSD */ { 835, 836, 837, 838},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_77(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[16][4] = {
|
|
/*JB */ { 848, 849, 847, 850},
|
|
/*JBE */ { 864, 865, 863, 866},
|
|
/*JL */ { 888, 889, 887, 890},
|
|
/*JLE */ { 896, 897, 895, 898},
|
|
/*JNB */ { 852, 853, 851, 854},
|
|
/*JNBE */ { 868, 869, 867, 870},
|
|
/*JNL */ { 892, 893, 891, 894},
|
|
/*JNLE */ { 900, 901, 899, 902},
|
|
/*JNO */ { 844, 845, 843, 846},
|
|
/*JNP */ { 884, 885, 883, 886},
|
|
/*JNS */ { 876, 877, 875, 878},
|
|
/*JNZ */ { 860, 861, 859, 862},
|
|
/*JO */ { 840, 842, 839, 841},
|
|
/*JP */ { 880, 881, 879, 882},
|
|
/*JS */ { 872, 873, 871, 874},
|
|
/*JZ */ { 856, 857, 855, 858},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_78(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*XCHG */ { 909, 910, 905, 908, 903, 904, 906, 907},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_79(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*LEA */ { 911},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_AGEN) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_agen(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REMOVE_SEGMENT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_80(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*POPFQ */ { 942, 943},
|
|
/*PUSHFQ */ { 935, 936},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['LONGMODE', 'LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['LONGMODE', 'LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_81(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*REP_MOVSB */ { 946, 947},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_82(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVSB */ { 948},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_83(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*REP_MOVSD */ { 958, 961, 959, 962, 960, 963},
|
|
/*REP_MOVSW */ { 949, 952, 950, 953, 951, 954},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_84(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*MOVSD */ { 964, 965, 966},
|
|
/*MOVSW */ { 955, 956, 957},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_85(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*REP_MOVSQ */ { 967, 968},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_86(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVSQ */ { 969},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_87(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*CMPSQ */ { 993},
|
|
/*LODSQ */ {1041},
|
|
/*REPE_CMPSQ */ { 991},
|
|
/*REPNE_CMPSQ */ { 992},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['LONGMODE', 'LONGMODE', 'LONGMODE', 'LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_88(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*REP_STOSQ */ {1015,1016},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_89(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*REP_LODSQ */ {1039,1040},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_90(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*RET_NEAR */ {1067,1066},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM16_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_91(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*LDS */ {1069},
|
|
/*LES */ {1068},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPRz_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_P);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_92(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*ENTER */ {1070},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_IMM0 && xes->_operand_order[1] == XED_OPERAND_IMM1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1) &&
|
|
(xed3_operand_get_imm1(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM16_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_93(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*LEAVE */ {1071},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I186']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_94(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*RET_FAR */ {1073,1072},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM16_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_95(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][1] = {
|
|
/*HRESET */ {7021},
|
|
/*INT */ {1075},
|
|
/*XABORT */ {5448},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I86', 'RTM', 'HRESET']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_96(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*AAD */ {1085},
|
|
/*AAM */ {1084},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_97(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*LOOPE */ {1094,1092,1093,1095},
|
|
/*LOOPNE */ {1090,1088,1089,1091},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_modep5(xes) == 0) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_modep5(xes) == 1) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_modep5(xes) == 1) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_modep5(xes) == 1) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I86', 'I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_98(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*LOOP */ {1096},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_DF64_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_99(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*JCXZ */ {1097},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 1) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_100(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*JECXZ */ {1098,1099},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 2) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 2) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_101(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*JRCXZ */ {1100},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 3) &&
|
|
(xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_102(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*IN */ {1103,1104,1101,1102},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_DX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_DX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_103(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*OUT */ {1107,1105,1108,1106},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_DX) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_AL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_IMM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_AL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_DX) &&
|
|
xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_IMM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_imm0(xes) == 1) &&
|
|
xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_104(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*LAR */ {1119,1118},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I286PROTECTED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I286PROTECTED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_105(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*LSL */ {1121,1120},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRz_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I286PROTECTED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I286PROTECTED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_106(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*SYSCALL */ {1122},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LONGMODE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FORCE64_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_107(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*MOVAPS */ {1404,1402,1403,1401},
|
|
/*MOVUPS */ {1129,1127,1128,1126},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_108(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[10][2] = {
|
|
/*CVTDQ2PS */ {1478,1477},
|
|
/*GF2P8MULB */ {6966,6967},
|
|
/*SHA1MSG1 */ {2453,2454},
|
|
/*SHA1MSG2 */ {2455,2456},
|
|
/*SHA1NEXTE */ {2457,2458},
|
|
/*SHA256MSG1 */ {2461,2462},
|
|
/*SHA256MSG2 */ {2463,2464},
|
|
/*SHA256RNDS2 */ {2465,2466},
|
|
/*UNPCKHPS */ {1133,1132},
|
|
/*UNPCKLPS */ {1131,1130},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True] isa_set ['SSE', 'SSE', 'SSE2', 'SHA', 'SHA', 'SHA', 'SHA', 'SHA', 'SHA', 'GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True] isa_set ['SSE', 'SSE', 'SSE2', 'SHA', 'SHA', 'SHA', 'SHA', 'SHA', 'SHA', 'GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_109(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*MOVSS */ {1137,1135,1136,1134},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_110(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][2] = {
|
|
/*ADDSUBPS */ {1350,1349},
|
|
/*CVTTPS2DQ */ {1494,1493},
|
|
/*HADDPS */ {1606,1605},
|
|
/*HSUBPS */ {1608,1607},
|
|
/*MOVSHDUP */ {1141,1140},
|
|
/*MOVSLDUP */ {1139,1138},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['SSE3', 'SSE3', 'SSE3', 'SSE2', 'SSE3', 'SSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['SSE3', 'SSE3', 'SSE3', 'SSE2', 'SSE3', 'SSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_111(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*MOVAPD */ {1431,1429,1430,1428},
|
|
/*MOVUPD */ {1145,1143,1144,1142},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_112(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*MOVHPD */ {1153,1152},
|
|
/*MOVLPD */ {1147,1146},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_113(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[27][2] = {
|
|
/*AESDEC */ {1949,1950},
|
|
/*AESDECLAST */ {1951,1952},
|
|
/*AESENC */ {1945,1946},
|
|
/*AESENCLAST */ {1947,1948},
|
|
/*AESIMC */ {1953,1954},
|
|
/*BLENDVPD */ {1822,1821},
|
|
/*BLENDVPS */ {1824,1823},
|
|
/*PACKUSDW */ {1839,1838},
|
|
/*PBLENDVB */ {1843,1842},
|
|
/*PCMPEQQ */ {1826,1825},
|
|
/*PCMPGTQ */ {1812,1811},
|
|
/*PHMINPOSUW */ {1869,1868},
|
|
/*PMAXSB */ {1871,1870},
|
|
/*PMAXSD */ {1873,1872},
|
|
/*PMAXUD */ {1875,1874},
|
|
/*PMAXUW */ {1877,1876},
|
|
/*PMINSB */ {1879,1878},
|
|
/*PMINSD */ {1881,1880},
|
|
/*PMINUD */ {1883,1882},
|
|
/*PMINUW */ {1885,1884},
|
|
/*PMULDQ */ {1889,1888},
|
|
/*PMULLD */ {1887,1886},
|
|
/*PTEST */ {1867,1866},
|
|
/*PUNPCKHQDQ */ {1584,1583},
|
|
/*PUNPCKLQDQ */ {1582,1581},
|
|
/*UNPCKHPD */ {1151,1150},
|
|
/*UNPCKLPD */ {1149,1148},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE42', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'AES', 'AES', 'AES', 'AES', 'AES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE42', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'AES', 'AES', 'AES', 'AES', 'AES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_114(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*MOVSD_XMM */ {1157,1155,1156,1154},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_115(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CVTDQ2PD */ {1373,1372},
|
|
/*MOVDDUP */ {1159,1158},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE3', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE3', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_116(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*MOV_CR */ {1160,1162,1161,1163},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_117(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*MOV_DR */ {1164,1166,1165,1167},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I86']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_118(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][2] = {
|
|
/*PCONFIG */ {6846,6847},
|
|
/*SYSENTER */ {1172,1173},
|
|
/*SYSEXIT */ {1174,1175},
|
|
/*TDCALL */ {7048,7047},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['PPRO', 'PPRO', 'PCONFIG', 'TDX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['PPRO', 'PPRO', 'PCONFIG', 'TDX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_119(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[18][2] = {
|
|
/*CMOVB */ {1181,1180},
|
|
/*CMOVBE */ {1189,1188},
|
|
/*CMOVL */ {1464,1463},
|
|
/*CMOVLE */ {1468,1467},
|
|
/*CMOVNB */ {1183,1182},
|
|
/*CMOVNBE */ {1191,1190},
|
|
/*CMOVNL */ {1466,1465},
|
|
/*CMOVNLE */ {1470,1469},
|
|
/*CMOVNO */ {1179,1178},
|
|
/*CMOVNP */ {1462,1461},
|
|
/*CMOVNS */ {1458,1457},
|
|
/*CMOVNZ */ {1187,1186},
|
|
/*CMOVO */ {1177,1176},
|
|
/*CMOVP */ {1460,1459},
|
|
/*CMOVS */ {1456,1455},
|
|
/*CMOVZ */ {1185,1184},
|
|
/*POPCNT */ {1810,1809},
|
|
/*TZCNT */ {5442,5441},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'POPCNT', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'CMOV', 'POPCNT', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_120(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVMSKPS */ {1192},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_121(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[9][2] = {
|
|
/*ADDPS */ {1472,1471},
|
|
/*DIVPS */ {1484,1483},
|
|
/*MAXPS */ {1486,1485},
|
|
/*MINPS */ {1482,1481},
|
|
/*MULPS */ {1474,1473},
|
|
/*RCPPS */ {1198,1197},
|
|
/*RSQRTPS */ {1196,1195},
|
|
/*SQRTPS */ {1194,1193},
|
|
/*SUBPS */ {1480,1479},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_122(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][2] = {
|
|
/*ANDNPS */ {1202,1201},
|
|
/*ANDPS */ {1200,1199},
|
|
/*ORPS */ {1204,1203},
|
|
/*XORPS */ {1206,1205},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['SSE', 'SSE', 'SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_XUD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['SSE', 'SSE', 'SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_123(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[10][2] = {
|
|
/*ADDSS */ {1488,1487},
|
|
/*CVTSS2SD */ {1492,1491},
|
|
/*DIVSS */ {1500,1499},
|
|
/*MAXSS */ {1502,1501},
|
|
/*MINSS */ {1498,1497},
|
|
/*MULSS */ {1490,1489},
|
|
/*RCPSS */ {1212,1211},
|
|
/*RSQRTSS */ {1210,1209},
|
|
/*SQRTSS */ {1208,1207},
|
|
/*SUBSS */ {1496,1495},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True] isa_set ['SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE2', 'SSE', 'SSE', 'SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True] isa_set ['SSE', 'SSE', 'SSE', 'SSE', 'SSE', 'SSE2', 'SSE', 'SSE', 'SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_124(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVMSKPD */ {1213},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_125(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[12][2] = {
|
|
/*ADDPD */ {1504,1503},
|
|
/*ADDSUBPD */ {1347,1346},
|
|
/*CVTPD2PS */ {1508,1507},
|
|
/*CVTTPD2DQ */ {1370,1369},
|
|
/*DIVPD */ {1516,1515},
|
|
/*HADDPD */ {1598,1597},
|
|
/*HSUBPD */ {1600,1599},
|
|
/*MAXPD */ {1518,1517},
|
|
/*MINPD */ {1514,1513},
|
|
/*MULPD */ {1506,1505},
|
|
/*SQRTPD */ {1215,1214},
|
|
/*SUBPD */ {1512,1511},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE3', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE3', 'SSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE3', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE3', 'SSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_126(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][2] = {
|
|
/*ANDNPD */ {1219,1218},
|
|
/*ANDPD */ {1217,1216},
|
|
/*ORPD */ {1221,1220},
|
|
/*XORPD */ {1223,1222},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_XUQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_127(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][2] = {
|
|
/*ADDSD */ {1520,1519},
|
|
/*CVTSD2SS */ {1524,1523},
|
|
/*DIVSD */ {1530,1529},
|
|
/*MAXSD */ {1532,1531},
|
|
/*MINSD */ {1528,1527},
|
|
/*MULSD */ {1522,1521},
|
|
/*SQRTSD */ {1225,1224},
|
|
/*SUBSD */ {1526,1525},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_128(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][4] = {
|
|
/*PUNPCKLBW */ {1227,1226,1229,1228},
|
|
/*PUNPCKLDQ */ {1235,1234,1237,1236},
|
|
/*PUNPCKLWD */ {1231,1230,1233,1232},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_129(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[59][4] = {
|
|
/*PABSB */ {1798,1797,1800,1799},
|
|
/*PABSD */ {1806,1805,1808,1807},
|
|
/*PABSW */ {1802,1801,1804,1803},
|
|
/*PACKSSDW */ {1546,1545,1548,1547},
|
|
/*PACKSSWB */ {1239,1238,1241,1240},
|
|
/*PACKUSWB */ {1255,1254,1257,1256},
|
|
/*PADDB */ {1734,1733,1736,1735},
|
|
/*PADDD */ {1742,1741,1744,1743},
|
|
/*PADDQ */ {1337,1336,1339,1338},
|
|
/*PADDSB */ {1702,1701,1704,1703},
|
|
/*PADDSW */ {1706,1705,1708,1707},
|
|
/*PADDUSB */ {1670,1669,1672,1671},
|
|
/*PADDUSW */ {1674,1673,1676,1675},
|
|
/*PADDW */ {1738,1737,1740,1739},
|
|
/*PAND */ {1666,1665,1668,1667},
|
|
/*PANDN */ {1682,1681,1684,1683},
|
|
/*PAVGB */ {1353,1352,1355,1354},
|
|
/*PAVGW */ {1357,1356,1359,1358},
|
|
/*PCMPEQB */ {1261,1260,1263,1262},
|
|
/*PCMPEQD */ {1269,1268,1271,1270},
|
|
/*PCMPEQW */ {1265,1264,1267,1266},
|
|
/*PCMPGTB */ {1243,1242,1245,1244},
|
|
/*PCMPGTD */ {1251,1250,1253,1252},
|
|
/*PCMPGTW */ {1247,1246,1249,1248},
|
|
/*PHADDD */ {1750,1749,1752,1751},
|
|
/*PHADDSW */ {1754,1753,1756,1755},
|
|
/*PHADDW */ {1746,1745,1748,1747},
|
|
/*PHSUBD */ {1762,1761,1764,1763},
|
|
/*PHSUBSW */ {1766,1765,1768,1767},
|
|
/*PHSUBW */ {1758,1757,1760,1759},
|
|
/*PMADDUBSW */ {1770,1769,1772,1771},
|
|
/*PMADDWD */ {1381,1380,1383,1382},
|
|
/*PMAXSW */ {1710,1709,1712,1711},
|
|
/*PMAXUB */ {1678,1677,1680,1679},
|
|
/*PMINSW */ {1694,1693,1696,1695},
|
|
/*PMINUB */ {1662,1661,1664,1663},
|
|
/*PMULHRSW */ {1774,1773,1776,1775},
|
|
/*PMULHUW */ {1361,1360,1363,1362},
|
|
/*PMULHW */ {1365,1364,1367,1366},
|
|
/*PMULLW */ {1341,1340,1343,1342},
|
|
/*PMULUDQ */ {1377,1376,1379,1378},
|
|
/*POR */ {1698,1697,1700,1699},
|
|
/*PSADBW */ {1385,1384,1387,1386},
|
|
/*PSHUFB */ {1778,1777,1780,1779},
|
|
/*PSIGNB */ {1782,1781,1784,1783},
|
|
/*PSIGND */ {1790,1789,1792,1791},
|
|
/*PSIGNW */ {1786,1785,1788,1787},
|
|
/*PSUBB */ {1718,1717,1720,1719},
|
|
/*PSUBD */ {1726,1725,1728,1727},
|
|
/*PSUBQ */ {1730,1729,1732,1731},
|
|
/*PSUBSB */ {1686,1685,1688,1687},
|
|
/*PSUBSW */ {1690,1689,1692,1691},
|
|
/*PSUBUSB */ {1654,1653,1656,1655},
|
|
/*PSUBUSW */ {1658,1657,1660,1659},
|
|
/*PSUBW */ {1722,1721,1724,1723},
|
|
/*PUNPCKHBW */ {1534,1533,1536,1535},
|
|
/*PUNPCKHDQ */ {1542,1541,1544,1543},
|
|
/*PUNPCKHWD */ {1538,1537,1540,1539},
|
|
/*PXOR */ {1714,1713,1716,1715},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSE2MMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSE2MMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSE2MMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSE2MMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSE2MMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSE2MMX', 'PENTIUMMMX', 'PENTIUMMMX', 'PENTIUMMMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX', 'SSSE3MMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSE2', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3', 'SSSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_130(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PSHUFW */ {1259,1258},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_131(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[9][2] = {
|
|
/*AESKEYGENASSIST*/ {1943,1944},
|
|
/*BLENDPD */ {1818,1817},
|
|
/*BLENDPS */ {1820,1819},
|
|
/*DPPD */ {1828,1827},
|
|
/*DPPS */ {1830,1829},
|
|
/*MPSADBW */ {1837,1836},
|
|
/*PBLENDW */ {1841,1840},
|
|
/*PCLMULQDQ */ {1955,1956},
|
|
/*PSHUFD */ {1274,1273},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'AES', 'PCLMULQDQ']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['SSE2', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'AES', 'PCLMULQDQ']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_132(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*PSHUFHW */ {1278,1277},
|
|
/*PSHUFLW */ {1276,1275},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_133(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[16][2] = {
|
|
/*SETB */ {1284,1283},
|
|
/*SETBE */ {1292,1291},
|
|
/*SETL */ {1618,1617},
|
|
/*SETLE */ {1622,1621},
|
|
/*SETNB */ {1286,1285},
|
|
/*SETNBE */ {1294,1293},
|
|
/*SETNL */ {1620,1619},
|
|
/*SETNLE */ {1624,1623},
|
|
/*SETNO */ {1282,1281},
|
|
/*SETNP */ {1616,1615},
|
|
/*SETNS */ {1612,1611},
|
|
/*SETNZ */ {1290,1289},
|
|
/*SETO */ {1280,1279},
|
|
/*SETP */ {1614,1613},
|
|
/*SETS */ {1610,1609},
|
|
/*SETZ */ {1288,1287},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_134(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CMPXCHG_LOCK */ {1296,1297},
|
|
/*XADD_LOCK */ {1309,1310},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I486REAL', 'I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I486REAL', 'I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_135(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*CMPXCHG */ {1299,1301,1298,1300},
|
|
/*XADD */ {1312,1314,1311,1313},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I486REAL', 'I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I486REAL', 'I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I486REAL', 'I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I486REAL', 'I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_136(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][1] = {
|
|
/*LFS */ {1303},
|
|
/*LGS */ {1304},
|
|
/*LSS */ {1302},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_P2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['I386', 'I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_137(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*MOVSX */ {1651,1649,1648,1650},
|
|
/*MOVZX */ {1308,1306,1305,1307},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_138(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CMPPS */ {1316,1315},
|
|
/*SHUFPS */ {1327,1326},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_139(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*MOVNTI */ {1317,1318,1319},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_140(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*PINSRW */ {1321,1320,1323,1322},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_141(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PEXTRW */ {1324,1325},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_142(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CMPSS */ {1329,1328},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_143(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*CMPPD */ {1331,1330},
|
|
/*ROUNDPD */ {1859,1858},
|
|
/*SHUFPD */ {1333,1332},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE2', 'SSE2', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE2', 'SSE2', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_144(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CMPSD_XMM */ {1335,1334},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_145(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PMOVMSKB */ {1344,1345},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_146(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVQ2DQ */ {1348},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_147(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVDQ2Q */ {1351},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_148(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVNTQ */ {1368},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_149(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*MOVNTDQ */ {1371},
|
|
/*MOVNTPD */ {1434},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_150(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CVTPD2DQ */ {1375,1374},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_151(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MASKMOVQ */ {1388},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_152(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MASKMOVDQU */ {1389},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_153(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*LDDQU */ {1390},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_154(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*WBINVD */ {1392,1393,1394},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = 1;
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_155(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*UD0 */ {1395,1397,1396},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode_short_ud0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO_UD0_SHORT']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode_short_ud0(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO_UD0_LONG']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode_short_ud0(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO_UD0_LONG']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_156(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*UD1 */ {1399,1398},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PPRO']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_157(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CVTPI2PS */ {1406,1405},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_158(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVNTPS */ {1407},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_159(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CVTPS2PI */ {1411,1410},
|
|
/*CVTTPS2PI */ {1409,1408},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_160(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*COMISS */ {1415,1414},
|
|
/*UCOMISS */ {1413,1412},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_161(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*CVTSI2SD */ {1444,1446,1443,1445},
|
|
/*CVTSI2SS */ {1417,1419,1416,1418},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_162(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*CVTSS2SI */ {1425,1427,1424,1426},
|
|
/*CVTTSS2SI */ {1421,1423,1420,1422},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE', 'SSE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_163(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CVTPI2PD */ {1433,1432},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_164(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*CVTPD2PI */ {1438,1437},
|
|
/*CVTTPD2PI */ {1436,1435},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_165(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*COMISD */ {1442,1441},
|
|
/*UCOMISD */ {1440,1439},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_166(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*CVTSD2SI */ {1452,1454,1451,1453},
|
|
/*CVTTSD2SI */ {1448,1450,1447,1449},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE2', 'SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_167(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CVTPS2PD */ {1476,1475},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_168(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*CVTPS2DQ */ {1510,1509},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_169(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][16] = {
|
|
/*MOVD */ {1564,1560,1562,1558,1563,1556,1559,1552,1561,1554,1557,1550,1555,1551,1553,1549},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_170(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][16] = {
|
|
/*MOVQ */ {1576,1574,1580,1578,1579,1575,1568,1573,1566,1577,1570,1572,1569,1567,1565,1571},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PENTIUMMMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_171(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*MOVDQU */ {1588,1586,1587,1585},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_172(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VMREAD */ {1592,1590,1591,1589},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_173(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VMWRITE */ {1596,1594,1595,1593},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VTX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_174(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*MOVDQA */ {1602,1604,1601,1603},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_175(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*SHLD */ {1633,1632,1631,1630},
|
|
/*SHRD */ {1629,1628,1627,1626},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_reg2(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_CL);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['I386', 'I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_176(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*BSF */ {1635,1637,1639,1634,1636,1638},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_177(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*BSR */ {1641,1643,1645,1647,1640,1642,1644,1646},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I386']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_178(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*BSWAP */ {1652},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['I486REAL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_179(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*PALIGNR */ {1794,1793,1796,1795},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSSE3MMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSSE3MMX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSSE3']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_180(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*CRC32 */ {1814,1816,1813,1815},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_181(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVNTDQA */ {1831},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_182(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*EXTRACTPS */ {1833,1832},
|
|
/*PEXTRD */ {1851,1850},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_183(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*INSERTPS */ {1835,1834},
|
|
/*ROUNDSS */ {1865,1864},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_184(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PEXTRB */ {1845,1844},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_185(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PEXTRW_SSE4 */ {1847,1846},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_186(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PEXTRQ */ {1849,1848},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_187(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PINSRB */ {1853,1852},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_188(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PINSRD */ {1855,1854},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_189(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PINSRQ */ {1857,1856},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_190(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*ROUNDPS */ {1861,1860},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_191(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*ROUNDSD */ {1863,1862},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_192(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][2] = {
|
|
/*PMOVSXBW */ {1891,1890},
|
|
/*PMOVSXDQ */ {1901,1900},
|
|
/*PMOVSXWD */ {1897,1896},
|
|
/*PMOVZXBW */ {1903,1902},
|
|
/*PMOVZXDQ */ {1913,1912},
|
|
/*PMOVZXWD */ {1909,1908},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_193(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][2] = {
|
|
/*PMOVSXBD */ {1893,1892},
|
|
/*PMOVSXWQ */ {1899,1898},
|
|
/*PMOVZXBD */ {1905,1904},
|
|
/*PMOVZXWQ */ {1911,1910},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['SSE4', 'SSE4', 'SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['SSE4', 'SSE4', 'SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_194(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*PMOVSXBQ */ {1895,1894},
|
|
/*PMOVZXBQ */ {1907,1906},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SSE4', 'SSE4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_195(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][4] = {
|
|
/*PCMPESTRI */ {1915,1917,1914,1916},
|
|
/*PCMPESTRM */ {1927,1929,1926,1928},
|
|
/*PCMPISTRI */ {1921,1923,1920,1922},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE42', 'SSE42', 'SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE42', 'SSE42', 'SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE42', 'SSE42', 'SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE42', 'SSE42', 'SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_196(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*PCMPESTRI64 */ {1919,1918},
|
|
/*PCMPESTRM64 */ {1931,1930},
|
|
/*PCMPISTRI64 */ {1925,1924},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE42', 'SSE42', 'SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SSE42', 'SSE42', 'SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_197(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PCMPISTRM */ {1933,1932},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE42']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_198(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[12][1] = {
|
|
/*XRSTOR */ {1937},
|
|
/*XRSTOR64 */ {1939},
|
|
/*XRSTORS */ {2471},
|
|
/*XRSTORS64 */ {2472},
|
|
/*XSAVE */ {1936},
|
|
/*XSAVE64 */ {1938},
|
|
/*XSAVEC */ {2473},
|
|
/*XSAVEC64 */ {2474},
|
|
/*XSAVEOPT */ {2467},
|
|
/*XSAVEOPT64 */ {2468},
|
|
/*XSAVES */ {2469},
|
|
/*XSAVES64 */ {2470},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MXSAVE);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['XSAVE', 'XSAVE', 'XSAVE', 'XSAVE', 'XSAVEOPT', 'XSAVEOPT', 'XSAVES', 'XSAVES', 'XSAVES', 'XSAVES', 'XSAVEC', 'XSAVEC']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_199(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*MOVBE */ {1941,1940},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
|
|
xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MOVBE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MOVBE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_200(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*INVEPT */ {1958,1957},
|
|
/*INVPCID */ {5445,5444},
|
|
/*INVVPID */ {1960,1959},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['VTX', 'VTX', 'INVPCID']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['VTX', 'VTX', 'INVPCID']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_201(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PREFETCHW */ {1962,1963},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_202(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*PREFETCH_RESERVED*/ {1964,1965,1966,1967,1968},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PREFETCH_NOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_203(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*REP_MONTMUL */ {1986,1987},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VIA_PADLOCK_MONTMUL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VIA_PADLOCK_MONTMUL']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_204(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[24][2] = {
|
|
/*PAVGUSB */ {2036,2035},
|
|
/*PF2ID */ {1996,1995},
|
|
/*PF2IW */ {1994,1993},
|
|
/*PFACC */ {2024,2023},
|
|
/*PFADD */ {2012,2011},
|
|
/*PFCMPEQ */ {2026,2025},
|
|
/*PFCMPGE */ {2002,2001},
|
|
/*PFCMPGT */ {2014,2013},
|
|
/*PFMAX */ {2016,2015},
|
|
/*PFMIN */ {2004,2003},
|
|
/*PFMUL */ {2028,2027},
|
|
/*PFNACC */ {1998,1997},
|
|
/*PFPNACC */ {2000,1999},
|
|
/*PFRCP */ {2006,2005},
|
|
/*PFRCPIT1 */ {2018,2017},
|
|
/*PFRCPIT2 */ {2030,2029},
|
|
/*PFRSQIT1 */ {2020,2019},
|
|
/*PFRSQRT */ {2008,2007},
|
|
/*PFSUB */ {2010,2009},
|
|
/*PFSUBR */ {2022,2021},
|
|
/*PI2FD */ {1992,1991},
|
|
/*PI2FW */ {1990,1989},
|
|
/*PMULHRW */ {2032,2031},
|
|
/*PSWAPD */ {2034,2033},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW', '3DNOW']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_205(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*SYSCALL_AMD */ {2037},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMD']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_206(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*VMLOAD */ {2041},
|
|
/*VMRUN */ {2039},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_ArAX(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['SVM', 'SVM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_207(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*SKINIT */ {2045},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_EAX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SVM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_208(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*INVLPGA */ {2046},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_ArAX(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ECX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SVM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_209(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*EXTRQ */ {2048,2047},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4a']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[19], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1) &&
|
|
(xed3_operand_get_imm1(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4a']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_210(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*INSERTQ */ {2050,2049},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4a']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[20], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1) &&
|
|
(xed3_operand_get_imm1(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4a']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_211(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVNTSD */ {2051},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4a']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_212(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*MOVNTSS */ {2052},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SSE4a']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_213(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*LZCNT */ {2054,2056,2053,2055},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMD']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LZCNT']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMD']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['LZCNT']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_214(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*PSMASH */ {2065},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_RAX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SNP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_215(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*PVALIDATE */ {2066},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_RAX) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_ECX) &&
|
|
(xed3_operand_get_reg2(xes) == XED_REG_EDX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SNP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_216(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*RMPADJUST */ {2067},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_RAX) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_RCX) &&
|
|
(xed3_operand_get_reg2(xes) == XED_REG_RDX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SNP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_217(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*RMPUPDATE */ {2068},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_RAX) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_RCX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['SNP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_218(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*INVLPGB */ {2069,2070},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 2) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_EAX) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_EDX) &&
|
|
(xed3_operand_get_reg2(xes) == XED_REG_ECX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMD_INVLPGB']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) == 3) &&
|
|
(xed3_operand_get_reg0(xes) == XED_REG_RAX) &&
|
|
(xed3_operand_get_reg1(xes) == XED_REG_EDX) &&
|
|
(xed3_operand_get_reg2(xes) == XED_REG_ECX);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMD_INVLPGB']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_219(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[12][2] = {
|
|
/*VPMACSDD */ {2129,2128},
|
|
/*VPMACSDQH */ {2131,2130},
|
|
/*VPMACSDQL */ {2083,2082},
|
|
/*VPMACSSDD */ {2125,2124},
|
|
/*VPMACSSDQH */ {2127,2126},
|
|
/*VPMACSSDQL */ {2077,2076},
|
|
/*VPMACSSWD */ {2075,2074},
|
|
/*VPMACSSWW */ {2073,2072},
|
|
/*VPMACSWD */ {2081,2080},
|
|
/*VPMACSWW */ {2079,2078},
|
|
/*VPMADCSSWD */ {2097,2096},
|
|
/*VPMADCSWD */ {2099,2098},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_220(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*VPCMOV */ {2085,2087,2089,2091,2084,2086,2088,2090},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_221(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VPPERM */ {2093,2095,2092,2094},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_222(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][6] = {
|
|
/*VPROTB */ {2103,2105,2102,2101,2104,2100},
|
|
/*VPROTD */ {2115,2117,2114,2113,2116,2112},
|
|
/*VPROTQ */ {2121,2123,2120,2119,2122,2118},
|
|
/*VPROTW */ {2109,2111,2108,2107,2110,2106},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_223(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][2] = {
|
|
/*VPCOMB */ {2133,2132},
|
|
/*VPCOMD */ {2137,2136},
|
|
/*VPCOMQ */ {2139,2138},
|
|
/*VPCOMUB */ {2141,2140},
|
|
/*VPCOMUD */ {2145,2144},
|
|
/*VPCOMUQ */ {2147,2146},
|
|
/*VPCOMUW */ {2143,2142},
|
|
/*VPCOMW */ {2135,2134},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_224(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VFRCZPD */ {2153,2155,2152,2154},
|
|
/*VFRCZPS */ {2149,2151,2148,2150},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_225(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VFRCZSS */ {2157,2156},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_226(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VFRCZSD */ {2159,2158},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_227(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][4] = {
|
|
/*VPSHAB */ {2203,2205,2202,2204},
|
|
/*VPSHAD */ {2211,2213,2210,2212},
|
|
/*VPSHAQ */ {2215,2217,2214,2216},
|
|
/*VPSHAW */ {2207,2209,2206,2208},
|
|
/*VPSHLB */ {2161,2163,2160,2162},
|
|
/*VPSHLD */ {2169,2171,2168,2170},
|
|
/*VPSHLQ */ {2173,2175,2172,2174},
|
|
/*VPSHLW */ {2165,2167,2164,2166},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_228(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[15][2] = {
|
|
/*VPHADDBD */ {2179,2178},
|
|
/*VPHADDBQ */ {2181,2180},
|
|
/*VPHADDBW */ {2177,2176},
|
|
/*VPHADDDQ */ {2219,2218},
|
|
/*VPHADDUBD */ {2189,2188},
|
|
/*VPHADDUBQ */ {2191,2190},
|
|
/*VPHADDUBW */ {2187,2186},
|
|
/*VPHADDUDQ */ {2221,2220},
|
|
/*VPHADDUWD */ {2193,2192},
|
|
/*VPHADDUWQ */ {2195,2194},
|
|
/*VPHADDWD */ {2183,2182},
|
|
/*VPHADDWQ */ {2185,2184},
|
|
/*VPHSUBBW */ {2197,2196},
|
|
/*VPHSUBDQ */ {2201,2200},
|
|
/*VPHSUBWD */ {2199,2198},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_229(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*BEXTR_XOP */ {2224,2225,2222,2223},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPRy_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Y) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_230(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[9][4] = {
|
|
/*BLCFILL */ {2228,2229,2226,2227},
|
|
/*BLCI */ {2260,2261,2258,2259},
|
|
/*BLCIC */ {2244,2245,2242,2243},
|
|
/*BLCMSK */ {2256,2257,2254,2255},
|
|
/*BLCS */ {2236,2237,2234,2235},
|
|
/*BLSFILL */ {2232,2233,2230,2231},
|
|
/*BLSIC */ {2248,2249,2246,2247},
|
|
/*T1MSKC */ {2252,2253,2250,2251},
|
|
/*TZMSK */ {2240,2241,2238,2239},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPRy_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Y);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM', 'TBM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_231(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*LLWPCB */ {2262},
|
|
/*SLWPCB */ {2263},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['LWP', 'LWP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_232(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*LWPINS */ {2265,2264},
|
|
/*LWPVAL */ {2267,2266},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['LWP', 'LWP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['LWP', 'LWP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM32_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_233(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[12][8] = {
|
|
/*VFMADDPD */ {2309,2311,2313,2315,2308,2310,2312,2314},
|
|
/*VFMADDPS */ {2301,2303,2305,2307,2300,2302,2304,2306},
|
|
/*VFMADDSUBPD */ {2277,2279,2281,2283,2276,2278,2280,2282},
|
|
/*VFMADDSUBPS */ {2269,2271,2273,2275,2268,2270,2272,2274},
|
|
/*VFMSUBADDPD */ {2293,2295,2297,2299,2292,2294,2296,2298},
|
|
/*VFMSUBADDPS */ {2285,2287,2289,2291,2284,2286,2288,2290},
|
|
/*VFMSUBPD */ {2333,2335,2337,2339,2332,2334,2336,2338},
|
|
/*VFMSUBPS */ {2325,2327,2329,2331,2324,2326,2328,2330},
|
|
/*VFNMADDPD */ {2357,2359,2361,2363,2356,2358,2360,2362},
|
|
/*VFNMADDPS */ {2349,2351,2353,2355,2348,2350,2352,2354},
|
|
/*VFNMSUBPD */ {2381,2383,2385,2387,2380,2382,2384,2386},
|
|
/*VFNMSUBPS */ {2373,2375,2377,2379,2372,2374,2376,2378},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_234(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][4] = {
|
|
/*VFMADDSS */ {2317,2319,2316,2318},
|
|
/*VFMSUBSS */ {2341,2343,2340,2342},
|
|
/*VFNMADDSS */ {2365,2367,2364,2366},
|
|
/*VFNMSUBSS */ {2389,2391,2388,2390},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_235(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][4] = {
|
|
/*VFMADDSD */ {2321,2323,2320,2322},
|
|
/*VFMSUBSD */ {2345,2347,2344,2346},
|
|
/*VFNMADDSD */ {2369,2371,2368,2370},
|
|
/*VFNMSUBSD */ {2393,2395,2392,2394},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['FMA4', 'FMA4', 'FMA4', 'FMA4']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_236(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][8] = {
|
|
/*VPERMIL2PD */ {2405,2409,2407,2411,2404,2408,2406,2410},
|
|
/*VPERMIL2PS */ {2397,2401,2399,2403,2396,2400,2398,2402},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[28], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[28], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['XOP', 'XOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_237(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*BNDMK */ {2412},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_AGEN) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_agen(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_238(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][3] = {
|
|
/*BNDCL */ {2415,2414,2413},
|
|
/*BNDCN */ {2421,2420,2419},
|
|
/*BNDCU */ {2418,2417,2416},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['MPX', 'MPX', 'MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['MPX', 'MPX', 'MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_AGEN) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_agen(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['MPX', 'MPX', 'MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_239(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*BNDMOV */ {2426,2422,2427,2423,2428,2424,2429,2425},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_BND_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_BND_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_240(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*BNDLDX */ {2430,2431,2432,2433},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_easz(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND32);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_241(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*BNDSTX */ {2434,2435,2436,2437},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_easz(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND32) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64) &&
|
|
xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MPX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_242(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*INCSSPD */ {2441},
|
|
/*RDSSPD */ {2443},
|
|
/*TPAUSE */ {2493},
|
|
/*UMWAIT */ {2495},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['CET', 'CET', 'WAITPKG', 'WAITPKG']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_243(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*INCSSPQ */ {2442},
|
|
/*RDSSPQ */ {2444},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['CET', 'CET']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_244(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*WRSSD */ {2448},
|
|
/*WRUSSD */ {2450},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['CET', 'CET']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_245(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*WRSSQ */ {2449},
|
|
/*WRUSSQ */ {2451},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['CET', 'CET']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_246(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*RDRAND */ {2452},
|
|
/*RDSEED */ {2476},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['RDRAND', 'RDSEED']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_247(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*GF2P8AFFINEINVQB*/ {6962,6963},
|
|
/*GF2P8AFFINEQB */ {6964,6965},
|
|
/*SHA1RNDS4 */ {2459,2460},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SHA', 'GFNI', 'GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['SHA', 'GFNI', 'GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_248(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*CLFLUSHOPT */ {2475},
|
|
/*CLWB */ {5460},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['CLFLUSHOPT', 'CLWB']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_REFINING66_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_249(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*RDFSBASE */ {2477},
|
|
/*RDGSBASE */ {2478},
|
|
/*WRFSBASE */ {2479},
|
|
/*WRGSBASE */ {2480},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['RDWRFSGS', 'RDWRFSGS', 'RDWRFSGS', 'RDWRFSGS']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_250(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*RDPID */ {2485,2486},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['RDPID']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['RDPID']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_251(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*PTWRITE */ {2487,2488},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PTWRITE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Y);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['PTWRITE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_252(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*MOVDIR64B */ {2489,2490},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_A_GPR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MOVDIR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_A_GPR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MOVDIR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_253(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*MOVDIRI */ {2491,2492},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MOVDIR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['MOVDIR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_254(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*UMONITOR */ {2494},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_A_GPR_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['WAITPKG']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_255(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[22][11] = {
|
|
/*VADDPD */ {2503,2499,2501,2498,2500,2505,2507,2502,2506,2508,2504},
|
|
/*VDIVPD */ {2819,2815,2817,2814,2816,2821,2823,2818,2822,2824,2820},
|
|
/*VFMADD132PD */ {4656,4652,4654,4651,4653,4658,4660,4655,4659,4661,4657},
|
|
/*VFMADD213PD */ {4688,4684,4686,4683,4685,4690,4692,4687,4691,4693,4689},
|
|
/*VFMADD231PD */ {4720,4716,4718,4715,4717,4722,4724,4719,4723,4725,4721},
|
|
/*VFMADDSUB132PD*/ {4752,4748,4750,4747,4749,4754,4756,4751,4755,4757,4753},
|
|
/*VFMADDSUB213PD*/ {4763,4759,4761,4758,4760,4765,4767,4762,4766,4768,4764},
|
|
/*VFMADDSUB231PD*/ {4774,4770,4772,4769,4771,4776,4778,4773,4777,4779,4775},
|
|
/*VFMSUB132PD */ {4884,4880,4882,4879,4881,4886,4888,4883,4887,4889,4885},
|
|
/*VFMSUB213PD */ {4916,4912,4914,4911,4913,4918,4920,4915,4919,4921,4917},
|
|
/*VFMSUB231PD */ {4948,4944,4946,4943,4945,4950,4952,4947,4951,4953,4949},
|
|
/*VFMSUBADD132PD*/ {4818,4814,4816,4813,4815,4820,4822,4817,4821,4823,4819},
|
|
/*VFMSUBADD213PD*/ {4829,4825,4827,4824,4826,4831,4833,4828,4832,4834,4830},
|
|
/*VFMSUBADD231PD*/ {4840,4836,4838,4835,4837,4842,4844,4839,4843,4845,4841},
|
|
/*VFNMADD132PD */ {4980,4976,4978,4975,4977,4982,4984,4979,4983,4985,4981},
|
|
/*VFNMADD213PD */ {5012,5008,5010,5007,5009,5014,5016,5011,5015,5017,5013},
|
|
/*VFNMADD231PD */ {5044,5040,5042,5039,5041,5046,5048,5043,5047,5049,5045},
|
|
/*VFNMSUB132PD */ {5076,5072,5074,5071,5073,5078,5080,5075,5079,5081,5077},
|
|
/*VFNMSUB213PD */ {5108,5104,5106,5103,5105,5110,5112,5107,5111,5113,5109},
|
|
/*VFNMSUB231PD */ {5140,5136,5138,5135,5137,5142,5144,5139,5143,5145,5141},
|
|
/*VMULPD */ {4040,4036,4038,4035,4037,4042,4044,4039,4043,4045,4041},
|
|
/*VSUBPD */ {4008,4004,4006,4003,4005,4010,4012,4007,4011,4013,4009},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_256(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[22][11] = {
|
|
/*VADDPS */ {2514,2510,2512,2509,2511,2516,2518,2513,2517,2519,2515},
|
|
/*VDIVPS */ {2830,2826,2828,2825,2827,2832,2834,2829,2833,2835,2831},
|
|
/*VFMADD132PS */ {4667,4663,4665,4662,4664,4669,4671,4666,4670,4672,4668},
|
|
/*VFMADD213PS */ {4699,4695,4697,4694,4696,4701,4703,4698,4702,4704,4700},
|
|
/*VFMADD231PS */ {4731,4727,4729,4726,4728,4733,4735,4730,4734,4736,4732},
|
|
/*VFMADDSUB132PS*/ {4785,4781,4783,4780,4782,4787,4789,4784,4788,4790,4786},
|
|
/*VFMADDSUB213PS*/ {4796,4792,4794,4791,4793,4798,4800,4795,4799,4801,4797},
|
|
/*VFMADDSUB231PS*/ {4807,4803,4805,4802,4804,4809,4811,4806,4810,4812,4808},
|
|
/*VFMSUB132PS */ {4895,4891,4893,4890,4892,4897,4899,4894,4898,4900,4896},
|
|
/*VFMSUB213PS */ {4927,4923,4925,4922,4924,4929,4931,4926,4930,4932,4928},
|
|
/*VFMSUB231PS */ {4959,4955,4957,4954,4956,4961,4963,4958,4962,4964,4960},
|
|
/*VFMSUBADD132PS*/ {4851,4847,4849,4846,4848,4853,4855,4850,4854,4856,4852},
|
|
/*VFMSUBADD213PS*/ {4862,4858,4860,4857,4859,4864,4866,4861,4865,4867,4863},
|
|
/*VFMSUBADD231PS*/ {4873,4869,4871,4868,4870,4875,4877,4872,4876,4878,4874},
|
|
/*VFNMADD132PS */ {4991,4987,4989,4986,4988,4993,4995,4990,4994,4996,4992},
|
|
/*VFNMADD213PS */ {5023,5019,5021,5018,5020,5025,5027,5022,5026,5028,5024},
|
|
/*VFNMADD231PS */ {5055,5051,5053,5050,5052,5057,5059,5054,5058,5060,5056},
|
|
/*VFNMSUB132PS */ {5087,5083,5085,5082,5084,5089,5091,5086,5090,5092,5088},
|
|
/*VFNMSUB213PS */ {5119,5115,5117,5114,5116,5121,5123,5118,5122,5124,5120},
|
|
/*VFNMSUB231PS */ {5151,5147,5149,5146,5148,5153,5155,5150,5154,5156,5152},
|
|
/*VMULPS */ {4051,4047,4049,4046,4048,4053,4055,4050,4054,4056,4052},
|
|
/*VSUBPS */ {4019,4015,4017,4014,4016,4021,4023,4018,4022,4024,4020},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_257(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[18][5] = {
|
|
/*VADDSD */ {2523,2521,2520,2522,2524},
|
|
/*VCVTSD2SS */ {2779,2777,2776,2778,2780},
|
|
/*VDIVSD */ {2839,2837,2836,2838,2840},
|
|
/*VFMADD132SD */ {4676,4674,4673,4675,4677},
|
|
/*VFMADD213SD */ {4708,4706,4705,4707,4709},
|
|
/*VFMADD231SD */ {4740,4738,4737,4739,4741},
|
|
/*VFMSUB132SD */ {4904,4902,4901,4903,4905},
|
|
/*VFMSUB213SD */ {4936,4934,4933,4935,4937},
|
|
/*VFMSUB231SD */ {4968,4966,4965,4967,4969},
|
|
/*VFNMADD132SD */ {5000,4998,4997,4999,5001},
|
|
/*VFNMADD213SD */ {5032,5030,5029,5031,5033},
|
|
/*VFNMADD231SD */ {5064,5062,5061,5063,5065},
|
|
/*VFNMSUB132SD */ {5096,5094,5093,5095,5097},
|
|
/*VFNMSUB213SD */ {5128,5126,5125,5127,5129},
|
|
/*VFNMSUB231SD */ {5160,5158,5157,5159,5161},
|
|
/*VMULSD */ {4060,4058,4057,4059,4061},
|
|
/*VSQRTSD */ {3976,3974,3973,3975,3977},
|
|
/*VSUBSD */ {4028,4026,4025,4027,4029},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_258(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[17][5] = {
|
|
/*VADDSS */ {2528,2526,2525,2527,2529},
|
|
/*VDIVSS */ {2844,2842,2841,2843,2845},
|
|
/*VFMADD132SS */ {4681,4679,4678,4680,4682},
|
|
/*VFMADD213SS */ {4713,4711,4710,4712,4714},
|
|
/*VFMADD231SS */ {4745,4743,4742,4744,4746},
|
|
/*VFMSUB132SS */ {4909,4907,4906,4908,4910},
|
|
/*VFMSUB213SS */ {4941,4939,4938,4940,4942},
|
|
/*VFMSUB231SS */ {4973,4971,4970,4972,4974},
|
|
/*VFNMADD132SS */ {5005,5003,5002,5004,5006},
|
|
/*VFNMADD213SS */ {5037,5035,5034,5036,5038},
|
|
/*VFNMADD231SS */ {5069,5067,5066,5068,5070},
|
|
/*VFNMSUB132SS */ {5101,5099,5098,5100,5102},
|
|
/*VFNMSUB213SS */ {5133,5131,5130,5132,5134},
|
|
/*VFNMSUB231SS */ {5165,5163,5162,5164,5166},
|
|
/*VMULSS */ {4065,4063,4062,4064,4066},
|
|
/*VSQRTSS */ {3981,3979,3978,3980,3982},
|
|
/*VSUBSS */ {4033,4031,4030,4032,4034},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA', 'FMA']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_259(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[19][4] = {
|
|
/*VADDSUBPD */ {2531,2533,2530,2532},
|
|
/*VADDSUBPS */ {2535,2537,2534,2536},
|
|
/*VHADDPD */ {2861,2863,2860,2862},
|
|
/*VHADDPS */ {2865,2867,2864,2866},
|
|
/*VHSUBPD */ {2869,2871,2868,2870},
|
|
/*VHSUBPS */ {2873,2875,2872,2874},
|
|
/*VPAND */ {3150,3152,3149,3151},
|
|
/*VPANDN */ {3154,3156,3153,3155},
|
|
/*VPHADDD */ {3592,3594,3591,3593},
|
|
/*VPHADDSW */ {3596,3598,3595,3597},
|
|
/*VPHADDW */ {3588,3590,3587,3589},
|
|
/*VPHSUBD */ {3604,3606,3603,3605},
|
|
/*VPHSUBSW */ {3608,3610,3607,3609},
|
|
/*VPHSUBW */ {3600,3602,3599,3601},
|
|
/*VPOR */ {3146,3148,3145,3147},
|
|
/*VPSIGNB */ {3702,3704,3701,3703},
|
|
/*VPSIGND */ {3710,3712,3709,3711},
|
|
/*VPSIGNW */ {3706,3708,3705,3707},
|
|
/*VPXOR */ {3158,3160,3157,3159},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_260(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[14][10] = {
|
|
/*VANDNPD */ {2559,2561,2558,2560,2562,2564,2566,2563,2565,2567},
|
|
/*VANDPD */ {2539,2541,2538,2540,2542,2544,2546,2543,2545,2547},
|
|
/*VORPD */ {4068,4070,4067,4069,4071,4073,4075,4072,4074,4076},
|
|
/*VPADDQ */ {3438,3440,3437,3439,3443,3445,3441,3444,3446,3442},
|
|
/*VPMULDQ */ {3672,3674,3671,3673,3677,3679,3675,3678,3680,3676},
|
|
/*VPMULUDQ */ {3662,3664,3661,3663,3667,3669,3665,3668,3670,3666},
|
|
/*VPSLLVQ */ {5324,5326,5323,5325,5329,5331,5327,5330,5332,5328},
|
|
/*VPSRLVQ */ {5344,5346,5343,5345,5349,5351,5347,5350,5352,5348},
|
|
/*VPSUBQ */ {3784,3786,3783,3785,3789,3791,3787,3790,3792,3788},
|
|
/*VPUNPCKHQDQ */ {3824,3826,3823,3825,3829,3831,3827,3830,3832,3828},
|
|
/*VPUNPCKLQDQ */ {3864,3866,3863,3865,3869,3871,3867,3870,3872,3868},
|
|
/*VUNPCKHPD */ {3984,3986,3983,3985,3989,3991,3987,3990,3992,3988},
|
|
/*VUNPCKLPD */ {4242,4244,4241,4243,4247,4249,4245,4248,4250,4246},
|
|
/*VXORPD */ {4262,4264,4261,4263,4265,4267,4269,4266,4268,4270},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_261(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[24][10] = {
|
|
/*VANDNPS */ {2569,2571,2568,2570,2572,2574,2576,2573,2575,2577},
|
|
/*VANDPS */ {2549,2551,2548,2550,2552,2554,2556,2553,2555,2557},
|
|
/*VORPS */ {4078,4080,4077,4079,4081,4083,4085,4082,4084,4086},
|
|
/*VPACKSSDW */ {3234,3236,3233,3235,3237,3239,3241,3238,3240,3242},
|
|
/*VPACKUSDW */ {3254,3256,3253,3255,3257,3259,3261,3258,3260,3262},
|
|
/*VPADDD */ {3428,3430,3427,3429,3433,3435,3431,3434,3436,3432},
|
|
/*VPDPBUSD */ {5467,5469,5468,5470,5461,5463,5465,5462,5464,5466},
|
|
/*VPDPBUSDS */ {5477,5479,5478,5480,5471,5473,5475,5472,5474,5476},
|
|
/*VPDPWSSD */ {5487,5489,5488,5490,5481,5483,5485,5482,5484,5486},
|
|
/*VPDPWSSDS */ {5497,5499,5498,5500,5491,5493,5495,5492,5494,5496},
|
|
/*VPMAXSD */ {4108,4110,4107,4109,4113,4115,4111,4114,4116,4112},
|
|
/*VPMAXUD */ {4138,4140,4137,4139,4143,4145,4141,4144,4146,4142},
|
|
/*VPMINSD */ {4168,4170,4167,4169,4173,4175,4171,4174,4176,4172},
|
|
/*VPMINUD */ {4198,4200,4197,4199,4203,4205,4201,4204,4206,4202},
|
|
/*VPMULLD */ {3652,3654,3651,3653,3657,3659,3655,3658,3660,3656},
|
|
/*VPSLLVD */ {5314,5316,5313,5315,5319,5321,5317,5320,5322,5318},
|
|
/*VPSRAVD */ {5354,5356,5353,5355,5359,5361,5357,5360,5362,5358},
|
|
/*VPSRLVD */ {5334,5336,5333,5335,5339,5341,5337,5340,5342,5338},
|
|
/*VPSUBD */ {3774,3776,3773,3775,3779,3781,3777,3780,3782,3778},
|
|
/*VPUNPCKHDQ */ {3814,3816,3813,3815,3819,3821,3817,3820,3822,3818},
|
|
/*VPUNPCKLDQ */ {3854,3856,3853,3855,3859,3861,3857,3860,3862,3858},
|
|
/*VUNPCKHPS */ {3994,3996,3993,3995,3999,4001,3997,4000,4002,3998},
|
|
/*VUNPCKLPS */ {4252,4254,4251,4253,4257,4259,4255,4258,4260,4256},
|
|
/*VXORPS */ {4272,4274,4271,4273,4275,4277,4279,4276,4278,4280},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI', 'AVX_VNNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512_VNNI_128', 'AVX512_VNNI_128', 'AVX512_VNNI_128', 'AVX512_VNNI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512_VNNI_256', 'AVX512_VNNI_256', 'AVX512_VNNI_256', 'AVX512_VNNI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512_VNNI_512', 'AVX512_VNNI_512', 'AVX512_VNNI_512', 'AVX512_VNNI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512_VNNI_128', 'AVX512_VNNI_128', 'AVX512_VNNI_128', 'AVX512_VNNI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512_VNNI_256', 'AVX512_VNNI_256', 'AVX512_VNNI_256', 'AVX512_VNNI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512_VNNI_512', 'AVX512_VNNI_512', 'AVX512_VNNI_512', 'AVX512_VNNI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_262(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][4] = {
|
|
/*VBLENDPD */ {2579,2581,2578,2580},
|
|
/*VBLENDPS */ {2583,2585,2582,2584},
|
|
/*VDPPS */ {2851,2853,2850,2852},
|
|
/*VMPSADBW */ {4228,4230,4227,4229},
|
|
/*VPBLENDD */ {5254,5256,5253,5255},
|
|
/*VPBLENDW */ {3904,3906,3903,3905},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_263(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCMPPD */ {2591,2587,2589,2586,2588,2593,2595,2590,2594,2596,2592},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_264(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCMPPS */ {2602,2598,2600,2597,2599,2604,2606,2601,2605,2607,2603},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_265(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*VCMPSD */ {2611,2609,2608,2610,2612},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_266(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*VCMPSS */ {2616,2614,2613,2615,2617},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_267(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VCOMISD */ {2621,2619,2618,2620,2622},
|
|
/*VUCOMISD */ {4234,4232,4231,4233,4235},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_268(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VCOMISS */ {2626,2624,2623,2625,2627},
|
|
/*VUCOMISS */ {4239,4237,4236,4238,4240},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_269(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCVTDQ2PD */ {2633,2629,2631,2628,2630,2635,2637,2632,2636,2638,2634},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_270(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][11] = {
|
|
/*VCVTDQ2PS */ {2644,2640,2642,2639,2641,2646,2648,2643,2647,2649,2645},
|
|
/*VCVTPS2DQ */ {2688,2684,2686,2683,2685,2690,2692,2687,2691,2693,2689},
|
|
/*VSQRTPS */ {3967,3963,3965,3962,3964,3969,3971,3966,3970,3972,3968},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_271(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][11] = {
|
|
/*VCVTPD2DQ */ {2655,2651,2653,2650,2652,2657,2659,2654,2658,2660,2656},
|
|
/*VCVTPD2PS */ {2677,2673,2675,2672,2674,2679,2681,2676,2680,2682,2678},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_272(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCVTTPD2DQ */ {2666,2662,2664,2661,2663,2668,2670,2665,2669,2671,2667},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_273(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCVTTPS2DQ */ {2699,2695,2697,2694,2696,2701,2703,2698,2702,2704,2700},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_274(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCVTPS2PD */ {2710,2706,2708,2705,2707,2712,2714,2709,2713,2715,2711},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_275(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][15] = {
|
|
/*VCVTSD2SI */ {2724,2725,2729,2717,2719,2721,2716,2718,2720,2722,2723,2728,2726,2727,2730},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_276(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][15] = {
|
|
/*VCVTTSD2SI */ {2739,2740,2744,2732,2734,2736,2731,2733,2735,2737,2738,2743,2741,2742,2745},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_277(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][15] = {
|
|
/*VCVTSS2SI */ {2754,2755,2759,2747,2749,2751,2746,2748,2750,2752,2753,2758,2756,2757,2760},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_278(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][15] = {
|
|
/*VCVTTSS2SI */ {2769,2770,2774,2762,2764,2766,2761,2763,2765,2767,2768,2773,2771,2772,2775},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_279(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][13] = {
|
|
/*VCVTSI2SD */ {2792,2782,2784,2786,2781,2783,2785,2787,2788,2791,2789,2790,2793},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_280(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][15] = {
|
|
/*VCVTSI2SS */ {2802,2803,2807,2795,2797,2799,2794,2796,2798,2800,2801,2806,2804,2805,2808},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_281(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][5] = {
|
|
/*VCVTSS2SD */ {2812,2810,2809,2811,2813},
|
|
/*VMAXSS */ {2993,2991,2990,2992,2994},
|
|
/*VMINSS */ {3025,3023,3022,3024,3026},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_282(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VEXTRACTF128 */ {2847,2846},
|
|
/*VEXTRACTI128 */ {5210,5209},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_283(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VDPPD */ {2849,2848},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_284(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VEXTRACTPS */ {2855,2854,2856,2857},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_285(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*VZEROALL */ {2858},
|
|
/*VZEROUPPER */ {2859},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_286(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][20] = {
|
|
/*VPERMILPD */ {2877,2879,2881,2876,2883,2878,2880,2882,2890,2894,2886,2888,2892,2884,2891,2895,2887,2889,2893,2885},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_287(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][20] = {
|
|
/*VPERMILPS */ {2897,2899,2901,2896,2903,2898,2900,2902,2910,2914,2906,2908,2912,2904,2911,2915,2907,2909,2913,2905},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_288(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VPERM2F128 */ {2917,2916},
|
|
/*VPERM2I128 */ {5220,5219},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_289(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VBROADCASTSS */ {2920,2921,2918,2919,2925,2927,2923,2924,2926,2922},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_290(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VBROADCASTSD */ {2929,2928,2933,2931,2932,2930},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_291(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*VBROADCASTF128*/ {2934},
|
|
/*VBROADCASTI128*/ {5312},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_292(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VINSERTF128 */ {2936,2935},
|
|
/*VINSERTI128 */ {5208,5207},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_293(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VINSERTPS */ {2938,2937,2939,2940},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_294(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VLDDQU */ {2941,2942},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_295(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][4] = {
|
|
/*VMASKMOVPD */ {2949,2947,2950,2948},
|
|
/*VMASKMOVPS */ {2945,2943,2946,2944},
|
|
/*VPMASKMOVD */ {5213,5211,5214,5212},
|
|
/*VPMASKMOVQ */ {5217,5215,5218,5216},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX', 'AVX', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_296(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][4] = {
|
|
/*VPTEST */ {2952,2954,2951,2953},
|
|
/*VRCPPS */ {3940,3942,3939,3941},
|
|
/*VRSQRTPS */ {3946,3948,3945,3947},
|
|
/*VTESTPD */ {2960,2962,2959,2961},
|
|
/*VTESTPS */ {2956,2958,2955,2957},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_297(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][11] = {
|
|
/*VMAXPD */ {2968,2964,2966,2963,2965,2970,2972,2967,2971,2973,2969},
|
|
/*VMINPD */ {3000,2996,2998,2995,2997,3002,3004,2999,3003,3005,3001},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_298(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][11] = {
|
|
/*VMAXPS */ {2979,2975,2977,2974,2976,2981,2983,2978,2982,2984,2980},
|
|
/*VMINPS */ {3011,3007,3009,3006,3008,3013,3015,3010,3014,3016,3012},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_299(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VMAXSD */ {2988,2986,2985,2987,2989},
|
|
/*VMINSD */ {3020,3018,3017,3019,3021},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_300(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][20] = {
|
|
/*VMOVAPD */ {3030,3028,3034,3032,3029,3027,3033,3031,3041,3039,3045,3043,3037,3035,3042,3040,3046,3044,3038,3036},
|
|
/*VMOVUPD */ {4300,4298,4304,4302,4299,4297,4303,4301,4311,4309,4315,4313,4307,4305,4312,4310,4316,4314,4308,4306},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_301(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][20] = {
|
|
/*VMOVAPS */ {3050,3048,3054,3052,3049,3047,3053,3051,3061,3059,3065,3063,3057,3055,3062,3060,3066,3064,3058,3056},
|
|
/*VMOVUPS */ {4320,4318,4324,4322,4319,4317,4323,4321,4331,4329,4335,4333,4327,4325,4332,4330,4336,4334,4328,4326},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_302(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][16] = {
|
|
/*VMOVD */ {3070,3068,3074,3072,3069,3067,3073,3071,3079,3075,3080,3076,3081,3077,3082,3078},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_303(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][16] = {
|
|
/*VMOVQ */ {3086,3084,3090,3088,3085,3083,3089,3087,3093,3091,3097,3095,3098,3094,3092,3096},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_304(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VMOVDDUP */ {3100,3102,3099,3101,3105,3107,3103,3106,3108,3104},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_305(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][8] = {
|
|
/*VMOVDQA */ {3112,3110,3116,3114,3111,3109,3115,3113},
|
|
/*VMOVDQU */ {3122,3118,3124,3120,3121,3117,3123,3119},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_306(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VMOVSHDUP */ {3126,3128,3125,3127,3131,3133,3129,3132,3134,3130},
|
|
/*VMOVSLDUP */ {3136,3138,3135,3137,3141,3143,3139,3142,3144,3140},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_307(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPABSB */ {3162,3164,3161,3163,3165,3167,3169,3166,3168,3170},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_308(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPABSW */ {3172,3174,3171,3173,3175,3177,3179,3176,3178,3180},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_309(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPABSD */ {3182,3184,3181,3183,3187,3189,3185,3188,3190,3186},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_310(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VAESIMC */ {4617,4618},
|
|
/*VPHMINPOSUW */ {3192,3191},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVXAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVXAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_311(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPSHUFD */ {3194,3196,3193,3195,3199,3201,3197,3200,3202,3198},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_312(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPSHUFHW */ {3204,3206,3203,3205,3207,3209,3211,3208,3210,3212},
|
|
/*VPSHUFLW */ {3214,3216,3213,3215,3217,3219,3221,3218,3220,3222},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_313(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[21][10] = {
|
|
/*VPACKSSWB */ {3224,3226,3223,3225,3227,3229,3231,3228,3230,3232},
|
|
/*VPACKUSWB */ {3244,3246,3243,3245,3247,3249,3251,3248,3250,3252},
|
|
/*VPADDSW */ {3458,3460,3457,3459,3461,3463,3465,3462,3464,3466},
|
|
/*VPADDUSW */ {3478,3480,3477,3479,3481,3483,3485,3482,3484,3486},
|
|
/*VPADDW */ {3418,3420,3417,3419,3421,3423,3425,3422,3424,3426},
|
|
/*VPAVGW */ {3498,3500,3497,3499,3501,3503,3505,3502,3504,3506},
|
|
/*VPMADDUBSW */ {4218,4220,4217,4219,4221,4223,4225,4222,4224,4226},
|
|
/*VPMADDWD */ {4208,4210,4207,4209,4211,4213,4215,4212,4214,4216},
|
|
/*VPMAXSW */ {4098,4100,4097,4099,4101,4103,4105,4102,4104,4106},
|
|
/*VPMAXUW */ {4128,4130,4127,4129,4131,4133,4135,4132,4134,4136},
|
|
/*VPMINSW */ {4158,4160,4157,4159,4161,4163,4165,4162,4164,4166},
|
|
/*VPMINUW */ {4188,4190,4187,4189,4191,4193,4195,4192,4194,4196},
|
|
/*VPMULHRSW */ {3622,3624,3621,3623,3625,3627,3629,3626,3628,3630},
|
|
/*VPMULHUW */ {3612,3614,3611,3613,3615,3617,3619,3616,3618,3620},
|
|
/*VPMULHW */ {3632,3634,3631,3633,3635,3637,3639,3636,3638,3640},
|
|
/*VPMULLW */ {3642,3644,3641,3643,3645,3647,3649,3646,3648,3650},
|
|
/*VPSUBSW */ {3724,3726,3723,3725,3727,3729,3731,3728,3730,3732},
|
|
/*VPSUBUSW */ {3744,3746,3743,3745,3747,3749,3751,3748,3750,3752},
|
|
/*VPSUBW */ {3764,3766,3763,3765,3767,3769,3771,3768,3770,3772},
|
|
/*VPUNPCKHWD */ {3804,3806,3803,3805,3807,3809,3811,3808,3810,3812},
|
|
/*VPUNPCKLWD */ {3844,3846,3843,3845,3847,3849,3851,3848,3850,3852},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_314(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][18] = {
|
|
/*VPSLLW */ {3264,3267,3265,3263,3268,3266,3269,3273,3277,3271,3275,3279,3270,3274,3278,3272,3276,3280},
|
|
/*VPSRAW */ {3372,3375,3373,3371,3376,3374,3377,3381,3385,3379,3383,3387,3378,3382,3386,3380,3384,3388},
|
|
/*VPSRLW */ {3318,3321,3319,3317,3322,3320,3323,3327,3331,3325,3329,3333,3324,3328,3332,3326,3330,3334},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_315(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][18] = {
|
|
/*VPSLLD */ {3282,3285,3283,3281,3286,3284,3291,3295,3287,3293,3297,3289,3292,3296,3288,3294,3298,3290},
|
|
/*VPSRAD */ {3390,3393,3391,3389,3394,3392,3399,3403,3395,3401,3405,3397,3400,3404,3396,3402,3406,3398},
|
|
/*VPSRLD */ {3336,3339,3337,3335,3340,3338,3345,3349,3341,3347,3351,3343,3346,3350,3342,3348,3352,3344},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_316(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][18] = {
|
|
/*VPSLLQ */ {3300,3303,3301,3299,3304,3302,3309,3313,3305,3311,3315,3307,3310,3314,3306,3312,3316,3308},
|
|
/*VPSRLQ */ {3354,3357,3355,3353,3358,3356,3363,3367,3359,3365,3369,3361,3364,3368,3360,3366,3370,3362},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_317(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[15][10] = {
|
|
/*VGF2P8MULB */ {6994,6996,6995,6997,6988,6990,6992,6989,6991,6993},
|
|
/*VPADDB */ {3408,3410,3407,3409,3411,3413,3415,3412,3414,3416},
|
|
/*VPADDSB */ {3448,3450,3447,3449,3451,3453,3455,3452,3454,3456},
|
|
/*VPADDUSB */ {3468,3470,3467,3469,3471,3473,3475,3472,3474,3476},
|
|
/*VPAVGB */ {3488,3490,3487,3489,3491,3493,3495,3492,3494,3496},
|
|
/*VPMAXSB */ {4088,4090,4087,4089,4091,4093,4095,4092,4094,4096},
|
|
/*VPMAXUB */ {4118,4120,4117,4119,4121,4123,4125,4122,4124,4126},
|
|
/*VPMINSB */ {4148,4150,4147,4149,4151,4153,4155,4152,4154,4156},
|
|
/*VPMINUB */ {4178,4180,4177,4179,4181,4183,4185,4182,4184,4186},
|
|
/*VPSHUFB */ {3692,3694,3691,3693,3695,3697,3699,3696,3698,3700},
|
|
/*VPSUBB */ {3754,3756,3753,3755,3757,3759,3761,3758,3760,3762},
|
|
/*VPSUBSB */ {3714,3716,3713,3715,3717,3719,3721,3718,3720,3722},
|
|
/*VPSUBUSB */ {3734,3736,3733,3735,3737,3739,3741,3738,3740,3742},
|
|
/*VPUNPCKHBW */ {3794,3796,3793,3795,3797,3799,3801,3798,3800,3802},
|
|
/*VPUNPCKLBW */ {3834,3836,3833,3835,3837,3839,3841,3838,3840,3842},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX2', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512_GFNI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512_GFNI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512_GFNI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512_GFNI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512_GFNI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512_GFNI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_318(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPCMPEQB */ {3508,3510,3507,3509,3511,3513,3515,3512,3514,3516},
|
|
/*VPCMPGTB */ {3548,3550,3547,3549,3551,3553,3555,3552,3554,3556},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_319(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPCMPEQW */ {3518,3520,3517,3519,3521,3523,3525,3522,3524,3526},
|
|
/*VPCMPGTW */ {3558,3560,3557,3559,3561,3563,3565,3562,3564,3566},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_320(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPCMPEQD */ {3528,3530,3527,3529,3533,3535,3531,3534,3536,3532},
|
|
/*VPCMPGTD */ {3568,3570,3567,3569,3573,3575,3571,3574,3576,3572},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_321(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPCMPEQQ */ {3538,3540,3537,3539,3543,3545,3541,3544,3546,3542},
|
|
/*VPCMPGTQ */ {3578,3580,3577,3579,3583,3585,3581,3584,3586,3582},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_322(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPSADBW */ {3682,3684,3681,3683,3685,3687,3689,3686,3688,3690},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_323(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][8] = {
|
|
/*VPSLLDQ */ {3881,3882,3883,3885,3887,3884,3886,3888},
|
|
/*VPSRLDQ */ {3873,3874,3875,3877,3879,3876,3878,3880},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_324(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VMOVHLPS */ {3891,3892},
|
|
/*VMOVLHPS */ {3889,3890},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128N', 'AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_325(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPALIGNR */ {3894,3896,3893,3895,3897,3899,3901,3898,3900,3902},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_326(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VROUNDPD */ {3908,3910,3907,3909},
|
|
/*VROUNDPS */ {3912,3914,3911,3913},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_327(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VROUNDSD */ {3916,3915},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_328(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VROUNDSS */ {3918,3917},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_329(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][10] = {
|
|
/*VGF2P8AFFINEINVQB*/ {6974,6976,6975,6977,6968,6970,6972,6969,6971,6973},
|
|
/*VGF2P8AFFINEQB*/ {6984,6986,6985,6987,6978,6980,6982,6979,6981,6983},
|
|
/*VSHUFPD */ {3920,3922,3919,3921,3925,3927,3923,3926,3928,3924},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX_GFNI', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX_GFNI', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX_GFNI', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX_GFNI', 'AVX_GFNI']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512_GFNI_128', 'AVX512_GFNI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512_GFNI_256', 'AVX512_GFNI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512_GFNI_512', 'AVX512_GFNI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512_GFNI_128', 'AVX512_GFNI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512_GFNI_256', 'AVX512_GFNI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512_GFNI_512', 'AVX512_GFNI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_330(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VSHUFPS */ {3930,3932,3929,3931,3935,3937,3933,3936,3938,3934},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_331(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VRCPSS */ {3944,3943},
|
|
/*VRSQRTSS */ {3950,3949},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_332(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VSQRTPD */ {3956,3952,3954,3951,3953,3958,3960,3955,3959,3961,3957},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_333(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*VMOVSS */ {4284,4282,4283,4281,4288,4287,4286,4285},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_334(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*VMOVSD */ {4292,4290,4291,4289,4296,4295,4294,4293},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_335(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VMOVHPD */ {4346,4345,4348,4347},
|
|
/*VMOVLPD */ {4338,4337,4340,4339},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128N', 'AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128N', 'AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_336(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VMOVHPS */ {4350,4349,4352,4351},
|
|
/*VMOVLPS */ {4342,4341,4344,4343},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128N', 'AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128N', 'AVX512F_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_337(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*VMOVMSKPD */ {4353,4354},
|
|
/*VMOVMSKPS */ {4355,4356},
|
|
/*VPMOVMSKB */ {4357,4358},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_338(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPMOVSXBW */ {4359,4361,4360,4362,4363,4365,4367,4364,4366,4368},
|
|
/*VPMOVZXBW */ {4419,4421,4420,4422,4423,4425,4427,4424,4426,4428},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_339(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPMOVSXBD */ {4369,4371,4370,4372,4375,4377,4373,4376,4378,4374},
|
|
/*VPMOVZXBD */ {4429,4431,4430,4432,4435,4437,4433,4436,4438,4434},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_340(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPMOVSXBQ */ {4379,4381,4380,4382,4385,4387,4383,4386,4388,4384},
|
|
/*VPMOVZXBQ */ {4439,4441,4440,4442,4445,4447,4443,4446,4448,4444},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_341(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPMOVSXWD */ {4389,4391,4390,4392,4395,4397,4393,4396,4398,4394},
|
|
/*VPMOVZXWD */ {4449,4451,4450,4452,4455,4457,4453,4456,4458,4454},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_342(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPMOVSXWQ */ {4399,4401,4400,4402,4405,4407,4403,4406,4408,4404},
|
|
/*VPMOVZXWQ */ {4459,4461,4460,4462,4465,4467,4463,4466,4468,4464},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_343(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPMOVSXDQ */ {4409,4411,4410,4412,4415,4417,4413,4416,4418,4414},
|
|
/*VPMOVZXDQ */ {4469,4471,4470,4472,4475,4477,4473,4476,4478,4474},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_344(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VPEXTRB */ {4480,4479,4481,4482},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BYTE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_345(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*VPEXTRW */ {4484,4485,4483,4486,4487},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_WORD_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_346(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VPEXTRQ */ {4489,4488,4490,4491},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_347(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*VPEXTRD */ {4495,4493,4494,4492,4496,4497,4498,4499},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_348(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VPINSRB */ {4501,4500,4502,4503},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BYTE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_349(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VPINSRW */ {4505,4504,4506,4507},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_WORD_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_350(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][8] = {
|
|
/*VPINSRD */ {4511,4509,4510,4508,4512,4513,4514,4515},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_351(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VPINSRQ */ {4517,4516,4518,4519},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_352(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][4] = {
|
|
/*VPCMPESTRI */ {4521,4523,4520,4522},
|
|
/*VPCMPESTRM */ {4533,4535,4532,4534},
|
|
/*VPCMPISTRI */ {4527,4529,4526,4528},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_353(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][2] = {
|
|
/*VPCMPESTRI64 */ {4525,4524},
|
|
/*VPCMPESTRM64 */ {4537,4536},
|
|
/*VPCMPISTRI64 */ {4531,4530},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_354(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VAESKEYGENASSIST*/ {4575,4576},
|
|
/*VPCMPISTRM */ {4539,4538},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVXAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVXAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_355(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*VMASKMOVDQU */ {4540},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_356(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*VLDMXCSR */ {4541},
|
|
/*VSTMXCSR */ {4542},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_357(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][4] = {
|
|
/*VBLENDVPD */ {4548,4550,4547,4549},
|
|
/*VBLENDVPS */ {4552,4554,4551,4553},
|
|
/*VPBLENDVB */ {4544,4546,4543,4545},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[21], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX2', 'AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_358(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*VMOVNTDQA */ {4555,4556,4558,4559,4557},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_359(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VMOVNTDQ */ {4560,4561,4563,4564,4562},
|
|
/*VMOVNTPS */ {4570,4571,4573,4574,4572},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX', 'AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_360(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*VMOVNTPD */ {4565,4566,4568,4569,4567},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_361(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][10] = {
|
|
/*VAESDEC */ {4597,4605,4598,4606,4599,4601,4603,4600,4602,4604},
|
|
/*VAESDECLAST */ {4607,4615,4608,4616,4609,4611,4613,4610,4612,4614},
|
|
/*VAESENC */ {4577,4585,4578,4586,4579,4581,4583,4580,4582,4584},
|
|
/*VAESENCLAST */ {4587,4595,4588,4596,4589,4591,4593,4590,4592,4594},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVXAES', 'AVXAES', 'AVXAES', 'AVXAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['VAES', 'VAES', 'VAES', 'VAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVXAES', 'AVXAES', 'AVXAES', 'AVXAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['VAES', 'VAES', 'VAES', 'VAES']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_VAES_128', 'AVX512_VAES_128', 'AVX512_VAES_128', 'AVX512_VAES_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_VAES_256', 'AVX512_VAES_256', 'AVX512_VAES_256', 'AVX512_VAES_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_VAES_512', 'AVX512_VAES_512', 'AVX512_VAES_512', 'AVX512_VAES_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_VAES_128', 'AVX512_VAES_128', 'AVX512_VAES_128', 'AVX512_VAES_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_128_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_VAES_256', 'AVX512_VAES_256', 'AVX512_VAES_256', 'AVX512_VAES_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_128_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_VAES_512', 'AVX512_VAES_512', 'AVX512_VAES_512', 'AVX512_VAES_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_128_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_362(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][10] = {
|
|
/*VPCLMULQDQ */ {4619,4627,4620,4628,4621,4623,4625,4622,4624,4626},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VPCLMULQDQ']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['VPCLMULQDQ']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VPCLMULQDQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VPCLMULQDQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VPCLMULQDQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VPCLMULQDQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VPCLMULQDQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VPCLMULQDQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_363(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCVTPH2PS */ {4634,4630,4632,4629,4631,4636,4638,4633,4637,4639,4635},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_364(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][11] = {
|
|
/*VCVTPS2PH */ {4645,4641,4643,4640,4642,4647,4649,4644,4648,4650,4646},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['F16C']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_365(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VGATHERDPD */ {5168,5167,5170,5171,5169},
|
|
/*VPGATHERDQ */ {5188,5187,5190,5191,5189},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_366(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VGATHERDPS */ {5173,5172,5175,5176,5174},
|
|
/*VPGATHERDD */ {5193,5192,5195,5196,5194},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_YMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_367(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VGATHERQPD */ {5178,5177,5180,5181,5179},
|
|
/*VPGATHERQQ */ {5198,5197,5200,5201,5199},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_YMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_368(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][5] = {
|
|
/*VGATHERQPS */ {5183,5182,5185,5186,5184},
|
|
/*VPGATHERQD */ {5203,5202,5205,5206,5204},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2GATHER', 'AVX2GATHER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_VMODRM_YMM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_369(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][10] = {
|
|
/*VPERMPD */ {5232,5231,5239,5235,5237,5233,5240,5236,5238,5234},
|
|
/*VPERMQ */ {5222,5221,5229,5225,5227,5223,5230,5226,5228,5224},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_370(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPERMD */ {5242,5241,5245,5243,5246,5244},
|
|
/*VPERMPS */ {5248,5247,5251,5249,5252,5250},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX2', 'AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_371(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][13] = {
|
|
/*VPBROADCASTB */ {5258,5260,5257,5259,5263,5261,5266,5264,5269,5267,5262,5265,5268},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_372(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][13] = {
|
|
/*VPBROADCASTW */ {5271,5273,5270,5272,5276,5274,5279,5277,5282,5280,5275,5278,5281},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_373(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][16] = {
|
|
/*VPBROADCASTD */ {5284,5286,5283,5285,5293,5294,5292,5297,5298,5296,5289,5290,5288,5291,5295,5287},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_374(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][13] = {
|
|
/*VPBROADCASTQ */ {5300,5302,5299,5301,5308,5307,5311,5310,5305,5304,5306,5309,5303},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_375(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][6] = {
|
|
/*ANDN */ {5377,5378,5380,5375,5376,5379},
|
|
/*MULX */ {5429,5430,5433,5431,5432,5434},
|
|
/*PDEP */ {5365,5366,5368,5363,5364,5367},
|
|
/*PEXT */ {5371,5372,5374,5369,5370,5373},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['BMI2', 'BMI2', 'BMI1', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['BMI2', 'BMI2', 'BMI1', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['BMI2', 'BMI2', 'BMI1', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['BMI2', 'BMI2', 'BMI1', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['BMI2', 'BMI2', 'BMI1', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['BMI2', 'BMI2', 'BMI1', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_376(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*BLSI */ {5395,5396,5398,5393,5394,5397},
|
|
/*BLSMSK */ {5389,5390,5392,5387,5388,5391},
|
|
/*BLSR */ {5383,5384,5386,5381,5382,5385},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['BMI1', 'BMI1', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['BMI1', 'BMI1', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['BMI1', 'BMI1', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['BMI1', 'BMI1', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['BMI1', 'BMI1', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['BMI1', 'BMI1', 'BMI1']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_377(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][6] = {
|
|
/*BEXTR */ {5407,5408,5410,5405,5406,5409},
|
|
/*BZHI */ {5401,5402,5404,5399,5400,5403},
|
|
/*SARX */ {5419,5420,5422,5417,5418,5421},
|
|
/*SHLX */ {5413,5414,5416,5411,5412,5415},
|
|
/*SHRX */ {5425,5426,5428,5423,5424,5427},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['BMI2', 'BMI1', 'BMI2', 'BMI2', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['BMI2', 'BMI1', 'BMI2', 'BMI2', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['BMI2', 'BMI1', 'BMI2', 'BMI2', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['BMI2', 'BMI1', 'BMI2', 'BMI2', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['BMI2', 'BMI1', 'BMI2', 'BMI2', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[24], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['BMI2', 'BMI1', 'BMI2', 'BMI2', 'BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_378(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*RORX */ {5435,5436,5439,5437,5438,5440},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[8], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['BMI2']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_379(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*XBEGIN */ {5446},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_relbr(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['RTM']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_380(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*ADCX */ {5452,5450,5453,5451},
|
|
/*ADOX */ {5456,5454,5457,5455},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['ADOX_ADCX', 'ADOX_ADCX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['ADOX_ADCX', 'ADOX_ADCX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['ADOX_ADCX', 'ADOX_ADCX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['ADOX_ADCX', 'ADOX_ADCX']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_381(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[16][6] = {
|
|
/*VBLENDMPS */ {5604,5606,5602,5605,5607,5603},
|
|
/*VCVTNE2PS2BF16*/ {5501,5503,5505,5502,5504,5506},
|
|
/*VDPBF16PS */ {5513,5515,5517,5514,5516,5518},
|
|
/*VPANDD */ {5872,5874,5870,5873,5875,5871},
|
|
/*VPANDND */ {5878,5880,5876,5879,5881,5877},
|
|
/*VPBLENDMD */ {5896,5898,5894,5897,5899,5895},
|
|
/*VPERMI2D */ {5944,5946,5942,5945,5947,5943},
|
|
/*VPERMI2PS */ {5956,5958,5954,5957,5959,5955},
|
|
/*VPERMT2D */ {5968,5970,5966,5969,5971,5967},
|
|
/*VPERMT2PS */ {5980,5982,5978,5981,5983,5979},
|
|
/*VPORD */ {6118,6120,6116,6119,6121,6117},
|
|
/*VPROLVD */ {6142,6144,6140,6143,6145,6141},
|
|
/*VPRORVD */ {6166,6168,6164,6167,6169,6165},
|
|
/*VPSHLDVD */ {6902,6904,6906,6903,6905,6907},
|
|
/*VPSHRDVD */ {6938,6940,6942,6939,6941,6943},
|
|
/*VPXORD */ {6244,6246,6242,6245,6247,6243},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_BF16_128', 'AVX512_BF16_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_BF16_256', 'AVX512_BF16_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_BF16_512', 'AVX512_BF16_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_BF16_128', 'AVX512_BF16_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_BF16_256', 'AVX512_BF16_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_BF16_512', 'AVX512_BF16_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_382(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VCVTNEPS2BF16 */ {5507,5509,5511,5508,5510,5512},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BF16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BF16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BF16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BF16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BF16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BF16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_383(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][3] = {
|
|
/*VEXP2PD */ {5520,5519,5521},
|
|
/*VRCP28PD */ {5534,5533,5535},
|
|
/*VRSQRT28PD */ {5546,5545,5547},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_512', 'AVX512ER_512', 'AVX512ER_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_512', 'AVX512ER_512', 'AVX512ER_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_512', 'AVX512ER_512', 'AVX512ER_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_384(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][3] = {
|
|
/*VEXP2PS */ {5523,5522,5524},
|
|
/*VRCP28PS */ {5537,5536,5538},
|
|
/*VRSQRT28PS */ {5549,5548,5550},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_512', 'AVX512ER_512', 'AVX512ER_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_512', 'AVX512ER_512', 'AVX512ER_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_512', 'AVX512ER_512', 'AVX512ER_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_385(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*VGATHERPF0DPD */ {5525},
|
|
/*VGATHERPF1DPD */ {5529},
|
|
/*VSCATTERPF0DPD*/ {5557},
|
|
/*VSCATTERPF1DPD*/ {5561},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_386(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][1] = {
|
|
/*VGATHERPF0DPS */ {5526},
|
|
/*VGATHERPF0QPS */ {5528},
|
|
/*VGATHERPF1DPS */ {5530},
|
|
/*VGATHERPF1QPS */ {5532},
|
|
/*VSCATTERPF0DPS*/ {5558},
|
|
/*VSCATTERPF0QPS*/ {5560},
|
|
/*VSCATTERPF1DPS*/ {5562},
|
|
/*VSCATTERPF1QPS*/ {5564},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_387(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*VGATHERPF0QPD */ {5527},
|
|
/*VGATHERPF1QPD */ {5531},
|
|
/*VSCATTERPF0QPD*/ {5559},
|
|
/*VSCATTERPF1QPD*/ {5563},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512', 'AVX512PF_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_388(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][3] = {
|
|
/*VGETEXPSD */ {5779,5778,5780},
|
|
/*VRCP28SD */ {5540,5539,5541},
|
|
/*VRSQRT28SD */ {5552,5551,5553},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_SCALAR', 'AVX512ER_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_SCALAR', 'AVX512ER_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_SCALAR', 'AVX512ER_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_389(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][3] = {
|
|
/*VGETEXPSS */ {5782,5781,5783},
|
|
/*VRCP28SS */ {5543,5542,5544},
|
|
/*VRSQRT28SS */ {5555,5554,5556},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_SCALAR', 'AVX512ER_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_SCALAR', 'AVX512ER_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512ER_SCALAR', 'AVX512ER_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_390(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][1] = {
|
|
/*V4FMADDPS */ {5566},
|
|
/*V4FNMADDPS */ {5568},
|
|
/*VP4DPWSSD */ {5570},
|
|
/*VP4DPWSSDS */ {5571},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512_4FMAPS_512', 'AVX512_4FMAPS_512', 'AVX512_4VNNIW_512', 'AVX512_4VNNIW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_4X_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_391(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*V4FMADDSS */ {5567},
|
|
/*V4FNMADDSS */ {5569},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_4FMAPS_SCALAR', 'AVX512_4FMAPS_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE1_4X_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_392(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][6] = {
|
|
/*VPCONFLICTD */ {6377,6379,6375,6378,6380,6376},
|
|
/*VPLZCNTD */ {6389,6391,6387,6390,6392,6388},
|
|
/*VPOPCNTD */ {5574,5576,5572,5575,5577,5573},
|
|
/*VRCP14PS */ {6262,6264,6260,6263,6265,6261},
|
|
/*VRSQRT14PS */ {6298,6300,6296,6299,6301,6297},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512CD_128', 'AVX512CD_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512CD_256', 'AVX512CD_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512CD_512', 'AVX512CD_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512CD_128', 'AVX512CD_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512CD_256', 'AVX512CD_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512CD_512', 'AVX512CD_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_393(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][6] = {
|
|
/*VPABSQ */ {5866,5868,5864,5867,5869,5865},
|
|
/*VPCONFLICTQ */ {6383,6385,6381,6384,6386,6382},
|
|
/*VPLZCNTQ */ {6395,6397,6393,6396,6398,6394},
|
|
/*VPOPCNTQ */ {5580,5582,5578,5581,5583,5579},
|
|
/*VRCP14PD */ {6256,6258,6254,6257,6259,6255},
|
|
/*VRSQRT14PD */ {6292,6294,6290,6293,6295,6291},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512CD_128', 'AVX512CD_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512CD_256', 'AVX512CD_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512CD_512', 'AVX512CD_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512CD_128', 'AVX512CD_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512CD_256', 'AVX512CD_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512_VPOPCNTDQ_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512CD_512', 'AVX512CD_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_394(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][6] = {
|
|
/*VALIGND */ {5586,5588,5584,5587,5589,5585},
|
|
/*VPSHLDD */ {6890,6892,6894,6891,6893,6895},
|
|
/*VPSHRDD */ {6926,6928,6930,6927,6929,6931},
|
|
/*VPTERNLOGD */ {6208,6210,6206,6209,6211,6207},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_395(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][6] = {
|
|
/*VALIGNQ */ {5592,5594,5590,5593,5595,5591},
|
|
/*VPSHLDQ */ {6896,6898,6900,6897,6899,6901},
|
|
/*VPSHRDQ */ {6932,6934,6936,6933,6935,6937},
|
|
/*VPTERNLOGQ */ {6214,6216,6212,6215,6217,6213},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_396(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[23][6] = {
|
|
/*VBLENDMPD */ {5598,5600,5596,5599,5601,5597},
|
|
/*VPANDNQ */ {5884,5886,5882,5885,5887,5883},
|
|
/*VPANDQ */ {5890,5892,5888,5891,5893,5889},
|
|
/*VPBLENDMQ */ {5902,5904,5900,5903,5905,5901},
|
|
/*VPERMI2PD */ {5950,5952,5948,5951,5953,5949},
|
|
/*VPERMI2Q */ {5962,5964,5960,5963,5965,5961},
|
|
/*VPERMT2PD */ {5974,5976,5972,5975,5977,5973},
|
|
/*VPERMT2Q */ {5986,5988,5984,5987,5989,5985},
|
|
/*VPMADD52HUQ */ {6809,6811,6813,6810,6812,6814},
|
|
/*VPMADD52LUQ */ {6815,6817,6819,6816,6818,6820},
|
|
/*VPMAXSQ */ {6004,6006,6002,6005,6007,6003},
|
|
/*VPMAXUQ */ {6010,6012,6008,6011,6013,6009},
|
|
/*VPMINSQ */ {6016,6018,6014,6017,6019,6015},
|
|
/*VPMINUQ */ {6022,6024,6020,6023,6025,6021},
|
|
/*VPMULLQ */ {6667,6669,6671,6668,6670,6672},
|
|
/*VPMULTISHIFTQB*/ {6839,6841,6843,6840,6842,6844},
|
|
/*VPORQ */ {6124,6126,6122,6125,6127,6123},
|
|
/*VPROLVQ */ {6148,6150,6146,6149,6151,6147},
|
|
/*VPRORVQ */ {6172,6174,6170,6173,6175,6171},
|
|
/*VPSHLDVQ */ {6908,6910,6912,6909,6911,6913},
|
|
/*VPSHRDVQ */ {6944,6946,6948,6945,6947,6949},
|
|
/*VPSRAVQ */ {6202,6204,6200,6203,6205,6201},
|
|
/*VPXORQ */ {6250,6252,6248,6251,6253,6249},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512_IFMA_128', 'AVX512_IFMA_128', 'AVX512_VBMI_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512_IFMA_256', 'AVX512_IFMA_256', 'AVX512_VBMI_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512_IFMA_512', 'AVX512_IFMA_512', 'AVX512_VBMI_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512F_128', 'AVX512DQ_128', 'AVX512_IFMA_128', 'AVX512_IFMA_128', 'AVX512_VBMI_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512F_256', 'AVX512DQ_256', 'AVX512_IFMA_256', 'AVX512_IFMA_256', 'AVX512_VBMI_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512F_512', 'AVX512DQ_512', 'AVX512_IFMA_512', 'AVX512_IFMA_512', 'AVX512_VBMI_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_397(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VBROADCASTF32X4*/ {5609,5608},
|
|
/*VBROADCASTI32X4*/ {5612,5611},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_398(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*VBROADCASTF64X4*/ {5610},
|
|
/*VBROADCASTI64X4*/ {5613},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_399(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VCOMPRESSPD */ {5617,5619,5615,5616,5618,5614},
|
|
/*VPCOMPRESSQ */ {5939,5941,5937,5938,5940,5936},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_400(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VCOMPRESSPS */ {5623,5625,5621,5622,5624,5620},
|
|
/*VPCOMPRESSD */ {5933,5935,5931,5932,5934,5930},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_401(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTPD2UDQ */ {5627,5629,5631,5626,5630,5632,5628},
|
|
/*VCVTQQ2PS */ {6455,6450,6452,6454,6451,6453,6456},
|
|
/*VCVTUQQ2PS */ {6497,6492,6494,6496,6493,6495,6498},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_402(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VCVTPS2UDQ */ {5634,5636,5638,5633,5637,5639,5635},
|
|
/*VCVTUDQ2PS */ {5698,5700,5702,5697,5701,5703,5699},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_403(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][9] = {
|
|
/*VCVTSD2USI */ {5642,5643,5647,5640,5641,5646,5644,5645,5648},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_404(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][9] = {
|
|
/*VCVTSS2USI */ {5651,5652,5656,5649,5650,5655,5653,5654,5657},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_405(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][7] = {
|
|
/*VCVTTPD2UDQ */ {5659,5661,5663,5658,5662,5664,5660},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_406(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VCVTTPS2UDQ */ {5666,5668,5670,5665,5669,5671,5667},
|
|
/*VGETEXPPS */ {5772,5774,5776,5771,5775,5777,5773},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_407(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][9] = {
|
|
/*VCVTTSD2USI */ {5674,5675,5679,5672,5673,5678,5676,5677,5680},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_408(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][9] = {
|
|
/*VCVTTSS2USI */ {5683,5684,5688,5681,5682,5687,5685,5686,5689},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_409(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][7] = {
|
|
/*VCVTUDQ2PD */ {5691,5693,5695,5690,5694,5696,5692},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_410(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][7] = {
|
|
/*VCVTUSI2SD */ {5709,5704,5705,5708,5706,5707,5710},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_411(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][9] = {
|
|
/*VCVTUSI2SS */ {5713,5714,5718,5711,5712,5717,5715,5716,5719},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_412(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VEXPANDPD */ {5723,5725,5721,5722,5724,5720},
|
|
/*VPEXPANDQ */ {5999,6001,5997,5998,6000,5996},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_413(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VEXPANDPS */ {5729,5731,5727,5728,5730,5726},
|
|
/*VPEXPANDD */ {5993,5995,5991,5992,5994,5990},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_414(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VEXTRACTF32X4 */ {5734,5732,5735,5733},
|
|
/*VEXTRACTI32X4 */ {5740,5738,5741,5739},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_415(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VEXTRACTF64X4 */ {5736,5737},
|
|
/*VEXTRACTI64X4 */ {5742,5743},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_416(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VFIXUPIMMPD */ {5745,5747,5749,5744,5748,5750,5746},
|
|
/*VRANGEPD */ {6720,6715,6717,6719,6716,6718,6721},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_417(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VFIXUPIMMPS */ {5752,5754,5756,5751,5755,5757,5753},
|
|
/*VRANGEPS */ {6727,6722,6724,6726,6723,6725,6728},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_418(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][3] = {
|
|
/*VFIXUPIMMSD */ {5759,5758,5760},
|
|
/*VGETMANTSD */ {5799,5798,5800},
|
|
/*VRANGESD */ {6730,6729,6731},
|
|
/*VREDUCESD */ {6750,6749,6751},
|
|
/*VRNDSCALESD */ {6285,6284,6286},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512DQ_SCALAR', 'AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512DQ_SCALAR', 'AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512DQ_SCALAR', 'AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_419(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][3] = {
|
|
/*VFIXUPIMMSS */ {5762,5761,5763},
|
|
/*VGETMANTSS */ {5802,5801,5803},
|
|
/*VRANGESS */ {6733,6732,6734},
|
|
/*VREDUCESS */ {6753,6752,6754},
|
|
/*VRNDSCALESS */ {6288,6287,6289},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512DQ_SCALAR', 'AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512DQ_SCALAR', 'AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512F_SCALAR', 'AVX512DQ_SCALAR', 'AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_420(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTTPD2QQ */ {6462,6457,6459,6461,6458,6460,6463},
|
|
/*VCVTTPD2UQQ */ {6469,6464,6466,6468,6465,6467,6470},
|
|
/*VGETEXPPD */ {5765,5767,5769,5764,5768,5770,5766},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_421(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VGETMANTPD */ {5785,5787,5789,5784,5788,5790,5786},
|
|
/*VREDUCEPD */ {6740,6735,6737,6739,6736,6738,6741},
|
|
/*VRNDSCALEPD */ {6271,6273,6275,6270,6274,6276,6272},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_422(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VGETMANTPS */ {5792,5794,5796,5791,5795,5797,5793},
|
|
/*VREDUCEPS */ {6747,6742,6744,6746,6743,6745,6748},
|
|
/*VRNDSCALEPS */ {6278,6280,6282,6277,6281,6283,6279},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_423(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VINSERTF32X4 */ {5806,5804,5807,5805},
|
|
/*VINSERTI32X4 */ {5812,5810,5813,5811},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_424(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VINSERTF64X4 */ {5808,5809},
|
|
/*VINSERTI64X4 */ {5814,5815},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_425(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][12] = {
|
|
/*VMOVDQA32 */ {5822,5820,5826,5824,5818,5816,5823,5821,5827,5825,5819,5817},
|
|
/*VMOVDQU32 */ {5846,5844,5850,5848,5842,5840,5847,5845,5851,5849,5843,5841},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_426(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][12] = {
|
|
/*VMOVDQA64 */ {5834,5832,5838,5836,5830,5828,5835,5833,5839,5837,5831,5829},
|
|
/*VMOVDQU64 */ {5858,5856,5862,5860,5854,5852,5859,5857,5863,5861,5855,5853},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_427(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPCMPD */ {5908,5910,5906,5909,5911,5907},
|
|
/*VPCMPUD */ {5920,5922,5918,5921,5923,5919},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_428(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPCMPQ */ {5914,5916,5912,5915,5917,5913},
|
|
/*VPCMPUQ */ {5926,5928,5924,5927,5929,5925},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_429(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPMOVDB */ {6028,6030,6026,6029,6031,6027},
|
|
/*VPMOVSDB */ {6058,6060,6056,6059,6061,6057},
|
|
/*VPMOVUSDB */ {6088,6090,6086,6089,6091,6087},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_430(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPMOVDW */ {6034,6036,6032,6035,6037,6033},
|
|
/*VPMOVSDW */ {6064,6066,6062,6065,6067,6063},
|
|
/*VPMOVUSDW */ {6094,6096,6092,6095,6097,6093},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_431(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPMOVQB */ {6040,6042,6038,6041,6043,6039},
|
|
/*VPMOVSQB */ {6070,6072,6068,6071,6073,6069},
|
|
/*VPMOVUSQB */ {6100,6102,6098,6101,6103,6099},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_432(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPMOVQD */ {6046,6048,6044,6047,6049,6045},
|
|
/*VPMOVSQD */ {6076,6078,6074,6077,6079,6075},
|
|
/*VPMOVUSQD */ {6106,6108,6104,6107,6109,6105},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_433(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPMOVQW */ {6052,6054,6050,6053,6055,6051},
|
|
/*VPMOVSQW */ {6082,6084,6080,6083,6085,6081},
|
|
/*VPMOVUSQW */ {6112,6114,6110,6113,6115,6111},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_128', 'AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_256', 'AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512F_512', 'AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_434(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPROLD */ {6130,6132,6128,6131,6133,6129},
|
|
/*VPRORD */ {6154,6156,6152,6155,6157,6153},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_435(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPROLQ */ {6136,6138,6134,6137,6139,6135},
|
|
/*VPRORQ */ {6160,6162,6158,6161,6163,6159},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_436(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*VPSCATTERDD */ {6177,6178,6176},
|
|
/*VSCATTERDPS */ {6330,6331,6329},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_437(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*VPSCATTERDQ */ {6180,6181,6179},
|
|
/*VSCATTERDPD */ {6327,6328,6326},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_438(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*VPSCATTERQD */ {6183,6184,6182},
|
|
/*VSCATTERQPS */ {6336,6337,6335},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_439(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*VPSCATTERQQ */ {6186,6187,6185},
|
|
/*VSCATTERQPD */ {6333,6334,6332},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_easz(xes) != 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_440(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][12] = {
|
|
/*VPSRAQ */ {6192,6196,6188,6194,6198,6190,6193,6197,6189,6195,6199,6191},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_441(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPTESTMD */ {6220,6222,6218,6221,6223,6219},
|
|
/*VPTESTNMD */ {6232,6234,6230,6233,6235,6231},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_442(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPTESTMQ */ {6226,6228,6224,6227,6229,6225},
|
|
/*VPTESTNMQ */ {6238,6240,6236,6239,6241,6237},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_128', 'AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_443(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VRCP14SD */ {6266,6267},
|
|
/*VRSQRT14SD */ {6302,6303},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_444(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VRCP14SS */ {6268,6269},
|
|
/*VRSQRT14SS */ {6304,6305},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_SCALAR', 'AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_445(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][7] = {
|
|
/*VSCALEFPD */ {6307,6309,6311,6306,6310,6312,6308},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_446(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][7] = {
|
|
/*VFCMADDCPH */ {7307,7302,7304,7306,7303,7305,7308},
|
|
/*VFCMULCPH */ {7317,7312,7314,7316,7313,7315,7318},
|
|
/*VFMADDCPH */ {7357,7352,7354,7356,7353,7355,7358},
|
|
/*VFMULCPH */ {7439,7434,7436,7438,7435,7437,7440},
|
|
/*VSCALEFPS */ {6314,6316,6318,6313,6317,6319,6315},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512F_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_447(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*VSCALEFSD */ {6321,6320,6322},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_448(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*VSCALEFSS */ {6324,6323,6325},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_449(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VSHUFF32X4 */ {6340,6338,6341,6339},
|
|
/*VSHUFI32X4 */ {6348,6346,6349,6347},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_450(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VSHUFF64X2 */ {6344,6342,6345,6343},
|
|
/*VSHUFI64X2 */ {6352,6350,6353,6351},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_256', 'AVX512F_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512F_512', 'AVX512F_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_451(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[27][1] = {
|
|
/*KADDB */ {6755},
|
|
/*KADDD */ {6756},
|
|
/*KADDQ */ {6757},
|
|
/*KADDW */ {6758},
|
|
/*KANDB */ {6759},
|
|
/*KANDD */ {6760},
|
|
/*KANDNB */ {6761},
|
|
/*KANDND */ {6762},
|
|
/*KANDNQ */ {6763},
|
|
/*KANDNW */ {6354},
|
|
/*KANDQ */ {6764},
|
|
/*KANDW */ {6355},
|
|
/*KORB */ {6785},
|
|
/*KORD */ {6786},
|
|
/*KORQ */ {6787},
|
|
/*KORW */ {6363},
|
|
/*KUNPCKBW */ {6366},
|
|
/*KUNPCKDQ */ {6801},
|
|
/*KUNPCKWD */ {6802},
|
|
/*KXNORB */ {6803},
|
|
/*KXNORD */ {6804},
|
|
/*KXNORQ */ {6805},
|
|
/*KXNORW */ {6367},
|
|
/*KXORB */ {6806},
|
|
/*KXORD */ {6807},
|
|
/*KXORQ */ {6808},
|
|
/*KXORW */ {6368},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_N(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_KOP', 'AVX512F_KOP', 'AVX512F_KOP', 'AVX512F_KOP', 'AVX512F_KOP', 'AVX512F_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_452(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*KMOVW */ {6360,6359,6356,6358,6357},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512F_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_453(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[12][1] = {
|
|
/*KNOTB */ {6782},
|
|
/*KNOTD */ {6783},
|
|
/*KNOTQ */ {6784},
|
|
/*KNOTW */ {6361},
|
|
/*KORTESTB */ {6788},
|
|
/*KORTESTD */ {6789},
|
|
/*KORTESTQ */ {6790},
|
|
/*KORTESTW */ {6362},
|
|
/*KTESTB */ {6797},
|
|
/*KTESTD */ {6798},
|
|
/*KTESTQ */ {6799},
|
|
/*KTESTW */ {6800},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512F_KOP', 'AVX512F_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_454(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[8][1] = {
|
|
/*KSHIFTLB */ {6791},
|
|
/*KSHIFTLD */ {6792},
|
|
/*KSHIFTLQ */ {6793},
|
|
/*KSHIFTLW */ {6364},
|
|
/*KSHIFTRB */ {6794},
|
|
/*KSHIFTRD */ {6795},
|
|
/*KSHIFTRQ */ {6796},
|
|
/*KSHIFTRW */ {6365},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True] isa_set ['AVX512F_KOP', 'AVX512F_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP', 'AVX512DQ_KOP', 'AVX512BW_KOP', 'AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_455(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[6][3] = {
|
|
/*VPBROADCASTMB2Q*/ {6370,6371,6369},
|
|
/*VPBROADCASTMW2D*/ {6373,6374,6372},
|
|
/*VPMOVM2B */ {6631,6632,6633},
|
|
/*VPMOVM2D */ {6634,6635,6636},
|
|
/*VPMOVM2Q */ {6637,6638,6639},
|
|
/*VPMOVM2W */ {6640,6641,6642},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512CD_128', 'AVX512CD_128', 'AVX512BW_128', 'AVX512DQ_128', 'AVX512DQ_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512CD_256', 'AVX512CD_256', 'AVX512BW_256', 'AVX512DQ_256', 'AVX512DQ_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True] isa_set ['AVX512CD_512', 'AVX512CD_512', 'AVX512BW_512', 'AVX512DQ_512', 'AVX512DQ_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_456(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VBROADCASTF32X2*/ {6399,6401,6400,6402},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_457(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*VBROADCASTF32X8*/ {6403},
|
|
/*VBROADCASTI32X8*/ {6412},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_458(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VBROADCASTF64X2*/ {6404,6405},
|
|
/*VBROADCASTI64X2*/ {6413,6414},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_459(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VBROADCASTI32X2*/ {6406,6408,6410,6407,6409,6411},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_460(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][7] = {
|
|
/*VCVTPD2QQ */ {6420,6415,6417,6419,6416,6418,6421},
|
|
/*VCVTPD2UQQ */ {6427,6422,6424,6426,6423,6425,6428},
|
|
/*VCVTQQ2PD */ {6448,6443,6445,6447,6444,6446,6449},
|
|
/*VCVTUQQ2PD */ {6490,6485,6487,6489,6486,6488,6491},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128', 'AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256', 'AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128', 'AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256', 'AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512', 'AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_461(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VCVTPS2QQ */ {6434,6429,6431,6433,6430,6432,6435},
|
|
/*VCVTPS2UQQ */ {6441,6436,6438,6440,6437,6439,6442},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_462(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VCVTTPS2QQ */ {6476,6471,6473,6475,6472,6474,6477},
|
|
/*VCVTTPS2UQQ */ {6483,6478,6480,6482,6479,6481,6484},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_128', 'AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_463(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VDBPSADBW */ {6499,6501,6503,6500,6502,6504},
|
|
/*VPSHLDW */ {6920,6922,6924,6921,6923,6925},
|
|
/*VPSHRDW */ {6956,6958,6960,6957,6959,6961},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_464(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VEXTRACTF32X8 */ {6505,6506},
|
|
/*VEXTRACTI32X8 */ {6511,6512},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_465(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VEXTRACTF64X2 */ {6507,6509,6508,6510},
|
|
/*VEXTRACTI64X2 */ {6513,6515,6514,6516},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_466(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VFPCLASSPD */ {6517,6519,6521,6518,6520,6522},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_467(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VFPCLASSPS */ {6523,6525,6527,6524,6526,6528},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_468(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VFPCLASSSD */ {6529,6530},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_469(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VFPCLASSSS */ {6531,6532},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_470(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VINSERTF32X8 */ {6533,6534},
|
|
/*VINSERTI32X8 */ {6539,6540},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_471(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][4] = {
|
|
/*VINSERTF64X2 */ {6535,6537,6536,6538},
|
|
/*VINSERTI64X2 */ {6541,6543,6542,6544},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_256', 'AVX512DQ_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512DQ_512', 'AVX512DQ_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_472(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][12] = {
|
|
/*VMOVDQU16 */ {6547,6545,6551,6549,6555,6553,6548,6546,6552,6550,6556,6554},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_473(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][12] = {
|
|
/*VMOVDQU8 */ {6559,6557,6563,6561,6567,6565,6560,6558,6564,6562,6568,6566},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_474(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][6] = {
|
|
/*VPBLENDMB */ {6569,6571,6573,6570,6572,6574},
|
|
/*VPERMB */ {6821,6823,6825,6822,6824,6826},
|
|
/*VPERMI2B */ {6827,6829,6831,6828,6830,6832},
|
|
/*VPERMT2B */ {6833,6835,6837,6834,6836,6838},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_128', 'AVX512_VBMI_128', 'AVX512_VBMI_128', 'AVX512_VBMI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_256', 'AVX512_VBMI_256', 'AVX512_VBMI_256', 'AVX512_VBMI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_512', 'AVX512_VBMI_512', 'AVX512_VBMI_512', 'AVX512_VBMI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_128', 'AVX512_VBMI_128', 'AVX512_VBMI_128', 'AVX512_VBMI_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_256', 'AVX512_VBMI_256', 'AVX512_VBMI_256', 'AVX512_VBMI_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_512', 'AVX512_VBMI_512', 'AVX512_VBMI_512', 'AVX512_VBMI_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_475(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[9][6] = {
|
|
/*VPBLENDMW */ {6575,6577,6579,6576,6578,6580},
|
|
/*VPERMI2W */ {6605,6607,6609,6606,6608,6610},
|
|
/*VPERMT2W */ {6611,6613,6615,6612,6614,6616},
|
|
/*VPERMW */ {6617,6619,6621,6618,6620,6622},
|
|
/*VPSHLDVW */ {6914,6916,6918,6915,6917,6919},
|
|
/*VPSHRDVW */ {6950,6952,6954,6951,6953,6955},
|
|
/*VPSLLVW */ {6673,6675,6677,6674,6676,6678},
|
|
/*VPSRAVW */ {6679,6681,6683,6680,6682,6684},
|
|
/*VPSRLVW */ {6685,6687,6689,6686,6688,6690},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128', 'AVX512_VBMI2_128', 'AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256', 'AVX512_VBMI2_256', 'AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512', 'AVX512_VBMI2_512', 'AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_476(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPCMPB */ {6581,6583,6585,6582,6584,6586},
|
|
/*VPCMPUB */ {6587,6589,6591,6588,6590,6592},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_477(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPCMPUW */ {6593,6595,6597,6594,6596,6598},
|
|
/*VPCMPW */ {6599,6601,6603,6600,6602,6604},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_478(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VPEXTRW_C5 */ {6623,6624},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_479(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[4][3] = {
|
|
/*VPMOVB2M */ {6625,6626,6627},
|
|
/*VPMOVD2M */ {6628,6629,6630},
|
|
/*VPMOVQ2M */ {6643,6644,6645},
|
|
/*VPMOVW2M */ {6658,6659,6660},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_128', 'AVX512DQ_128', 'AVX512DQ_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_256', 'AVX512DQ_256', 'AVX512DQ_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True] isa_set ['AVX512BW_512', 'AVX512DQ_512', 'AVX512DQ_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_480(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPMOVSWB */ {6646,6648,6650,6647,6649,6651},
|
|
/*VPMOVUSWB */ {6652,6654,6656,6653,6655,6657},
|
|
/*VPMOVWB */ {6661,6663,6665,6662,6664,6666},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_481(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][6] = {
|
|
/*VPSHUFBITQMB */ {6860,6862,6864,6861,6863,6865},
|
|
/*VPTESTMB */ {6691,6693,6695,6692,6694,6696},
|
|
/*VPTESTNMB */ {6703,6705,6707,6704,6706,6708},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512_BITALG_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512_BITALG_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512_BITALG_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_128', 'AVX512BW_128', 'AVX512_BITALG_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_256', 'AVX512BW_256', 'AVX512_BITALG_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512BW_512', 'AVX512BW_512', 'AVX512_BITALG_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_482(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VPTESTMW */ {6697,6699,6701,6698,6700,6702},
|
|
/*VPTESTNMW */ {6709,6711,6713,6710,6712,6714},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_128', 'AVX512BW_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_256', 'AVX512BW_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512BW_512', 'AVX512BW_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_483(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*KMOVB */ {6769,6768,6765,6767,6766},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512DQ_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_484(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][7] = {
|
|
/*KMOVD */ {6776,6774,6775,6773,6770,6772,6771},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_485(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][5] = {
|
|
/*KMOVQ */ {6781,6780,6777,6779,6778},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512BW_KOP']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_486(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VPOPCNTB */ {6848,6850,6852,6849,6851,6853},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_487(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VPOPCNTW */ {6854,6856,6858,6855,6857,6859},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_BITALG_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_488(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VPCOMPRESSB */ {6867,6869,6871,6866,6868,6870},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_489(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VPCOMPRESSW */ {6873,6875,6877,6872,6874,6876},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_490(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VPEXPANDB */ {6879,6881,6883,6878,6880,6882},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_491(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VPEXPANDW */ {6885,6887,6889,6884,6886,6888},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VBMI2_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_492(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VP2INTERSECTD */ {6998,7000,7002,6999,7001,7003},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_493(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VP2INTERSECTQ */ {7004,7006,7008,7005,7007,7009},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_VP2INTERSECT_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_494(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*AESDEC128KL */ {7010},
|
|
/*AESENC128KL */ {7014},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M384);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['KEYLOCKER', 'KEYLOCKER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_495(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*AESDEC256KL */ {7011},
|
|
/*AESENC256KL */ {7015},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['KEYLOCKER', 'KEYLOCKER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_496(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*AESDECWIDE128KL*/ {7012},
|
|
/*AESENCWIDE128KL*/ {7016},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M384);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['KEYLOCKER_WIDE', 'KEYLOCKER_WIDE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_497(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*AESDECWIDE256KL*/ {7013},
|
|
/*AESENCWIDE256KL*/ {7017},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['KEYLOCKER_WIDE', 'KEYLOCKER_WIDE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_498(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*ENCODEKEY128 */ {7018},
|
|
/*ENCODEKEY256 */ {7019},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['KEYLOCKER', 'KEYLOCKER']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_499(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*SENDUIPI */ {7023},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['UINTR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_500(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*LDTILECFG */ {7027},
|
|
/*STTILECFG */ {7028},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AMX_TILE', 'AMX_TILE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_501(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][1] = {
|
|
/*TDPBF16PS */ {7029},
|
|
/*TDPBSSD */ {7030},
|
|
/*TDPBSUD */ {7031},
|
|
/*TDPBUSD */ {7032},
|
|
/*TDPBUUD */ {7033},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_TMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_TMM_B(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_TMM_N(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AMX_BF16', 'AMX_INT8', 'AMX_INT8', 'AMX_INT8', 'AMX_INT8']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_502(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*TILELOADD */ {7034},
|
|
/*TILELOADDT1 */ {7035},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_TMM_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PTR);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AMX_TILE', 'AMX_TILE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_503(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*TILERELEASE */ {7036},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMX_TILE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_504(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*TILESTORED */ {7037},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PTR) &&
|
|
xed_encode_ntluf_TMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMX_TILE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_505(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][1] = {
|
|
/*TILEZERO */ {7038},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
(xed3_operand_get_must_use_evex(xes) == 0) &&
|
|
xed_encode_ntluf_TMM_R(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AMX_TILE']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_506(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][1] = {
|
|
/*ENQCMD */ {7039},
|
|
/*ENQCMDS */ {7040},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_A_GPR_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['ENQCMD', 'ENQCMD']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_507(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[23][7] = {
|
|
/*VADDPH */ {7054,7049,7051,7053,7050,7052,7055},
|
|
/*VDIVPH */ {7297,7292,7294,7296,7293,7295,7298},
|
|
/*VFMADD132PH */ {7327,7322,7324,7326,7323,7325,7328},
|
|
/*VFMADD213PH */ {7337,7332,7334,7336,7333,7335,7338},
|
|
/*VFMADD231PH */ {7347,7342,7344,7346,7343,7345,7348},
|
|
/*VFMADDSUB132PH*/ {7367,7362,7364,7366,7363,7365,7368},
|
|
/*VFMADDSUB213PH*/ {7374,7369,7371,7373,7370,7372,7375},
|
|
/*VFMADDSUB231PH*/ {7381,7376,7378,7380,7377,7379,7382},
|
|
/*VFMSUB132PH */ {7388,7383,7385,7387,7384,7386,7389},
|
|
/*VFMSUB213PH */ {7398,7393,7395,7397,7394,7396,7399},
|
|
/*VFMSUB231PH */ {7408,7403,7405,7407,7404,7406,7409},
|
|
/*VFMSUBADD132PH*/ {7418,7413,7415,7417,7414,7416,7419},
|
|
/*VFMSUBADD213PH*/ {7425,7420,7422,7424,7421,7423,7426},
|
|
/*VFMSUBADD231PH*/ {7432,7427,7429,7431,7428,7430,7433},
|
|
/*VFNMADD132PH */ {7449,7444,7446,7448,7445,7447,7450},
|
|
/*VFNMADD213PH */ {7459,7454,7456,7458,7455,7457,7460},
|
|
/*VFNMADD231PH */ {7469,7464,7466,7468,7465,7467,7470},
|
|
/*VFNMSUB132PH */ {7479,7474,7476,7478,7475,7477,7480},
|
|
/*VFNMSUB213PH */ {7489,7484,7486,7488,7485,7487,7490},
|
|
/*VFNMSUB231PH */ {7499,7494,7496,7498,7495,7497,7500},
|
|
/*VMULPH */ {7565,7560,7562,7564,7561,7563,7566},
|
|
/*VSCALEFPH */ {7611,7606,7608,7610,7607,7609,7612},
|
|
/*VSUBPH */ {7631,7626,7628,7630,7627,7629,7632},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_508(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[18][3] = {
|
|
/*VADDSH */ {7057,7056,7058},
|
|
/*VDIVSH */ {7300,7299,7301},
|
|
/*VFMADD132SH */ {7330,7329,7331},
|
|
/*VFMADD213SH */ {7340,7339,7341},
|
|
/*VFMADD231SH */ {7350,7349,7351},
|
|
/*VFMSUB132SH */ {7391,7390,7392},
|
|
/*VFMSUB213SH */ {7401,7400,7402},
|
|
/*VFMSUB231SH */ {7411,7410,7412},
|
|
/*VFNMADD132SH */ {7452,7451,7453},
|
|
/*VFNMADD213SH */ {7462,7461,7463},
|
|
/*VFNMADD231SH */ {7472,7471,7473},
|
|
/*VFNMSUB132SH */ {7482,7481,7483},
|
|
/*VFNMSUB213SH */ {7492,7491,7493},
|
|
/*VFNMSUB231SH */ {7502,7501,7503},
|
|
/*VMULSH */ {7568,7567,7569},
|
|
/*VSCALEFSH */ {7614,7613,7615},
|
|
/*VSQRTSH */ {7624,7623,7625},
|
|
/*VSUBSH */ {7634,7633,7635},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_509(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][7] = {
|
|
/*VCMPPH */ {7064,7059,7061,7063,7060,7062,7065},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_510(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*VCMPSH */ {7067,7066,7068},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_511(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][3] = {
|
|
/*VCOMISH */ {7070,7069,7071},
|
|
/*VUCOMISH */ {7637,7636,7638},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_512(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTDQ2PH */ {7077,7072,7074,7076,7073,7075,7078},
|
|
/*VCVTPS2PHX */ {7147,7142,7144,7146,7143,7145,7148},
|
|
/*VCVTUDQ2PH */ {7260,7255,7257,7259,7256,7258,7261},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_513(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTPD2PH */ {7084,7079,7081,7083,7080,7082,7085},
|
|
/*VCVTQQ2PH */ {7154,7149,7151,7153,7150,7152,7155},
|
|
/*VCVTUQQ2PH */ {7267,7262,7264,7266,7263,7265,7268},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_514(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VCVTPH2DQ */ {7091,7086,7088,7090,7087,7089,7092},
|
|
/*VCVTPH2UDQ */ {7119,7114,7116,7118,7115,7117,7120},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_515(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTPH2PD */ {7098,7093,7095,7097,7094,7096,7099},
|
|
/*VCVTTPH2QQ */ {7207,7202,7204,7206,7203,7205,7208},
|
|
/*VCVTTPH2UQQ */ {7221,7216,7218,7220,7217,7219,7222},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_516(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTPH2PSX */ {7105,7100,7102,7104,7101,7103,7106},
|
|
/*VCVTTPH2DQ */ {7200,7195,7197,7199,7196,7198,7201},
|
|
/*VCVTTPH2UDQ */ {7214,7209,7211,7213,7210,7212,7215},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_517(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VCVTPH2QQ */ {7112,7107,7109,7111,7108,7110,7113},
|
|
/*VCVTPH2UQQ */ {7126,7121,7123,7125,7122,7124,7127},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_QUARTER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_518(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][7] = {
|
|
/*VCVTPH2UW */ {7133,7128,7130,7132,7129,7131,7134},
|
|
/*VCVTPH2W */ {7140,7135,7137,7139,7136,7138,7141},
|
|
/*VCVTUW2PH */ {7283,7278,7280,7282,7279,7281,7284},
|
|
/*VCVTW2PH */ {7290,7285,7287,7289,7286,7288,7291},
|
|
/*VSQRTPH */ {7621,7616,7618,7620,7617,7619,7622},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_519(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][3] = {
|
|
/*VCVTSD2SH */ {7157,7156,7158},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_520(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][3] = {
|
|
/*VCVTSH2SD */ {7160,7159,7161},
|
|
/*VCVTSH2SS */ {7172,7171,7173},
|
|
/*VGETEXPSH */ {7520,7519,7521},
|
|
/*VMAXSH */ {7540,7539,7541},
|
|
/*VMINSH */ {7550,7549,7551},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_521(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][9] = {
|
|
/*VCVTSH2SI */ {7166,7163,7169,7165,7162,7168,7167,7164,7170},
|
|
/*VCVTSH2USI */ {7178,7175,7181,7177,7174,7180,7179,7176,7182},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_522(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][9] = {
|
|
/*VCVTSI2SH */ {7187,7184,7190,7186,7183,7189,7188,7185,7191},
|
|
/*VCVTUSI2SH */ {7273,7270,7276,7272,7269,7275,7274,7271,7277},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_523(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[5][3] = {
|
|
/*VCVTSS2SH */ {7193,7192,7194},
|
|
/*VFCMADDCSH */ {7310,7309,7311},
|
|
/*VFCMULCSH */ {7320,7319,7321},
|
|
/*VFMADDCSH */ {7360,7359,7361},
|
|
/*VFMULCSH */ {7442,7441,7443},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_524(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VCVTTPH2UW */ {7228,7223,7225,7227,7224,7226,7229},
|
|
/*VCVTTPH2W */ {7235,7230,7232,7234,7231,7233,7236},
|
|
/*VGETEXPPH */ {7517,7512,7514,7516,7513,7515,7518},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_525(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][9] = {
|
|
/*VCVTTSH2SI */ {7241,7238,7244,7240,7237,7243,7242,7239,7245},
|
|
/*VCVTTSH2USI */ {7250,7247,7253,7249,7246,7252,7251,7248,7254},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
(xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
|
|
xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_526(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][6] = {
|
|
/*VFPCLASSPH */ {7504,7506,7508,7505,7507,7509},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_527(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][2] = {
|
|
/*VFPCLASSSH */ {7510,7511},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_528(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][7] = {
|
|
/*VGETMANTPH */ {7527,7522,7524,7526,7523,7525,7528},
|
|
/*VREDUCEPH */ {7583,7578,7580,7582,7579,7581,7584},
|
|
/*VRNDSCALEPH */ {7593,7588,7590,7592,7589,7591,7594},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_529(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[3][3] = {
|
|
/*VGETMANTSH */ {7530,7529,7531},
|
|
/*VREDUCESH */ {7586,7585,7587},
|
|
/*VRNDSCALESH */ {7596,7595,7597},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[29], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[30], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
(xed3_operand_get_imm0(xes) == 1);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_UIMM8_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_530(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][7] = {
|
|
/*VMAXPH */ {7537,7532,7534,7536,7533,7535,7538},
|
|
/*VMINPH */ {7547,7542,7544,7546,7543,7545,7548},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_SAE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_531(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VMOVSH */ {7555,7554,7553,7552},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_532(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[1][4] = {
|
|
/*VMOVW */ {7558,7556,7559,7557},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True] isa_set ['AVX512_FP16_128N']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_533(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][6] = {
|
|
/*VRCPPH */ {7570,7572,7574,7571,7573,7575},
|
|
/*VRSQRTPH */ {7598,7600,7602,7599,7601,7603},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
|
|
xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_128', 'AVX512_FP16_128']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
|
|
xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_256', 'AVX512_FP16_256']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
|
|
xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_512', 'AVX512_FP16_512']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|
|
xed_bool_t xed_encode_group_534(xed_encoder_request_t* xes)
|
|
{
|
|
xed_bool_t okay=1;
|
|
xed_ptrn_func_ptr_t fb_ptrn_function;
|
|
static const xed_uint16_t iform_ids[2][2] = {
|
|
/*VRCPSH */ {7576,7577},
|
|
/*VRSQRTSH */ {7604,7605},
|
|
};
|
|
xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
if (1) { // ALL ONES
|
|
if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
|
|
xed_bool_t conditions_satisfied=0;
|
|
conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
|
|
xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
|
|
xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
|
|
(xed3_operand_get_mem0(xes) == 1) &&
|
|
xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
|
|
if (conditions_satisfied) {
|
|
// real_opcode [True, True] isa_set ['AVX512_FP16_SCALAR', 'AVX512_FP16_SCALAR']
|
|
okay=1;
|
|
xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
|
|
fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
|
|
(*fb_ptrn_function)(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_MODRM_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
|
|
if (okay)
|
|
okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
|
|
if (okay) return 1;
|
|
}
|
|
} // initial conditions
|
|
} // xed_enc_chip_check
|
|
return 0;
|
|
(void) okay;
|
|
(void) xes;
|
|
}
|