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.
2991 lines
115 KiB
2991 lines
115 KiB
3 years ago
|
/// @file xed-encoder-1.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-encoder.h"
|
||
|
#include "xed-encode-private.h"
|
||
|
#include "xed-enc-operand-lu.h"
|
||
|
#include "xed-operand-accessors.h"
|
||
|
xed_uint32_t xed_encode_nonterminal_SAE_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t bcrc;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[2] = {
|
||
|
/*h(0)=0 SAE=0 -> FB BCRC=0 value=0x0*/ {0},
|
||
|
/*h(1)=1 SAE=1 -> FB BCRC=1 value=0x1*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_SAE(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx <= 1) {
|
||
|
xed3_operand_set_bcrc(xes,lu_table[hidx].bcrc);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_128_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_64_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_32_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_16_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_8_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_4_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_2_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ESIZE_1_BITS_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_FULLMEM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_HALFMEM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_READER_BYTE_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_READER_WORD_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BYTE_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_WORD_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_SCALAR_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE1_SUBDWORD_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_READER_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_READER_SUBDWORD_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_SUBDWORD_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_MEM128_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t error;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[31] = {
|
||
|
/*h(1)=0 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(2)=1 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(3)=2 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(4)=3 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(5)=4 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(6)=5 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(7)=6 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(8)=7 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(9)=8 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(10)=9 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(11)=10 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(12)=11 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(13)=12 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(14)=13 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(15)=14 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(16)=15 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(17)=16 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(18)=17 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(19)=18 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(20)=19 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(21)=20 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(22)=21 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(23)=22 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(24)=23 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(25)=24 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(26)=25 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(27)=26 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(28)=27 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(29)=28 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(30)=29 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR},
|
||
|
/*h(31)=30 BCAST!=0 -> FB ERROR=XED_ERROR_GENERAL_ERROR*/ {XED_ERROR_GENERAL_ERROR}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_BCAST(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 30) {
|
||
|
xed3_operand_set_error(xes,lu_table[hidx].error);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
xed3_operand_set_bcrc(xes,0);
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE1_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_GSCAT_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE2_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE4_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_TUPLE8_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_FULL_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t bcrc;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[31] = {
|
||
|
/*h(1)=0 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(2)=1 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(3)=2 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(4)=3 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(5)=4 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(6)=5 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(7)=6 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(8)=7 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(9)=8 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(10)=9 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(11)=10 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(12)=11 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(13)=12 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(14)=13 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(15)=14 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(16)=15 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(17)=16 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(18)=17 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(19)=18 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(20)=19 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(21)=20 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(22)=21 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(23)=22 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(24)=23 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(25)=24 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(26)=25 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(27)=26 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(28)=27 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(29)=28 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(30)=29 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(31)=30 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_BCAST(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 30) {
|
||
|
xed3_operand_set_bcrc(xes,lu_table[hidx].bcrc);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
xed3_operand_set_bcrc(xes,0);
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_HALF_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t bcrc;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[31] = {
|
||
|
/*h(1)=0 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(2)=1 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(3)=2 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(4)=3 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(5)=4 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(6)=5 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(7)=6 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(8)=7 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(9)=8 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(10)=9 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(11)=10 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(12)=11 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(13)=12 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(14)=13 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(15)=14 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(16)=15 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(17)=16 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(18)=17 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(19)=18 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(20)=19 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(21)=20 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(22)=21 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(23)=22 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(24)=23 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(25)=24 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(26)=25 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(27)=26 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(28)=27 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(29)=28 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(30)=29 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1},
|
||
|
/*h(31)=30 BCAST!=0 -> FB BCRC=1 value=0x1*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_BCAST(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 30) {
|
||
|
xed3_operand_set_bcrc(xes,lu_table[hidx].bcrc);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
xed3_operand_set_bcrc(xes,0);
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UISA_ENC_INDEX_ZMM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexx ;xed_int8_t sibindex ;xed_int8_t vexdest4;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[32] = {
|
||
|
/*h(252)=0 INDEX=XED_REG_ZMM0 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {0,0,0},
|
||
|
/*h(253)=1 INDEX=XED_REG_ZMM1 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {0,1,0},
|
||
|
/*h(254)=2 INDEX=XED_REG_ZMM2 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {0,2,0},
|
||
|
/*h(255)=3 INDEX=XED_REG_ZMM3 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {0,3,0},
|
||
|
/*h(256)=4 INDEX=XED_REG_ZMM4 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0,4,0},
|
||
|
/*h(257)=5 INDEX=XED_REG_ZMM5 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {0,5,0},
|
||
|
/*h(258)=6 INDEX=XED_REG_ZMM6 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {0,6,0},
|
||
|
/*h(259)=7 INDEX=XED_REG_ZMM7 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {0,7,0},
|
||
|
/*h(260)=8 INDEX=XED_REG_ZMM8 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {1,0,0},
|
||
|
/*h(261)=9 INDEX=XED_REG_ZMM9 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {1,1,0},
|
||
|
/*h(262)=10 INDEX=XED_REG_ZMM10 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {1,2,0},
|
||
|
/*h(263)=11 INDEX=XED_REG_ZMM11 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {1,3,0},
|
||
|
/*h(264)=12 INDEX=XED_REG_ZMM12 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {1,4,0},
|
||
|
/*h(265)=13 INDEX=XED_REG_ZMM13 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {1,5,0},
|
||
|
/*h(266)=14 INDEX=XED_REG_ZMM14 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {1,6,0},
|
||
|
/*h(267)=15 INDEX=XED_REG_ZMM15 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {1,7,0},
|
||
|
/*h(268)=16 INDEX=XED_REG_ZMM16 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {0,0,1},
|
||
|
/*h(269)=17 INDEX=XED_REG_ZMM17 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {0,1,1},
|
||
|
/*h(270)=18 INDEX=XED_REG_ZMM18 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {0,2,1},
|
||
|
/*h(271)=19 INDEX=XED_REG_ZMM19 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {0,3,1},
|
||
|
/*h(272)=20 INDEX=XED_REG_ZMM20 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0,4,1},
|
||
|
/*h(273)=21 INDEX=XED_REG_ZMM21 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {0,5,1},
|
||
|
/*h(274)=22 INDEX=XED_REG_ZMM22 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {0,6,1},
|
||
|
/*h(275)=23 INDEX=XED_REG_ZMM23 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {0,7,1},
|
||
|
/*h(276)=24 INDEX=XED_REG_ZMM24 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {1,0,1},
|
||
|
/*h(277)=25 INDEX=XED_REG_ZMM25 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {1,1,1},
|
||
|
/*h(278)=26 INDEX=XED_REG_ZMM26 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {1,2,1},
|
||
|
/*h(279)=27 INDEX=XED_REG_ZMM27 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {1,3,1},
|
||
|
/*h(280)=28 INDEX=XED_REG_ZMM28 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {1,4,1},
|
||
|
/*h(281)=29 INDEX=XED_REG_ZMM29 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {1,5,1},
|
||
|
/*h(282)=30 INDEX=XED_REG_ZMM30 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {1,6,1},
|
||
|
/*h(283)=31 INDEX=XED_REG_ZMM31 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {1,7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_INDEX(xes);
|
||
|
hidx = key - 252;
|
||
|
if(hidx <= 31) {
|
||
|
xed3_operand_set_rexx(xes,lu_table[hidx].rexx);
|
||
|
xed3_operand_set_sibindex(xes,lu_table[hidx].sibindex);
|
||
|
xed3_operand_set_vexdest4(xes,lu_table[hidx].vexdest4);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UISA_ENC_INDEX_YMM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexx ;xed_int8_t sibindex ;xed_int8_t vexdest4;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[32] = {
|
||
|
/*h(220)=0 INDEX=XED_REG_YMM0 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {0,0,0},
|
||
|
/*h(221)=1 INDEX=XED_REG_YMM1 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {0,1,0},
|
||
|
/*h(222)=2 INDEX=XED_REG_YMM2 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {0,2,0},
|
||
|
/*h(223)=3 INDEX=XED_REG_YMM3 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {0,3,0},
|
||
|
/*h(224)=4 INDEX=XED_REG_YMM4 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0,4,0},
|
||
|
/*h(225)=5 INDEX=XED_REG_YMM5 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {0,5,0},
|
||
|
/*h(226)=6 INDEX=XED_REG_YMM6 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {0,6,0},
|
||
|
/*h(227)=7 INDEX=XED_REG_YMM7 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {0,7,0},
|
||
|
/*h(228)=8 INDEX=XED_REG_YMM8 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {1,0,0},
|
||
|
/*h(229)=9 INDEX=XED_REG_YMM9 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {1,1,0},
|
||
|
/*h(230)=10 INDEX=XED_REG_YMM10 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {1,2,0},
|
||
|
/*h(231)=11 INDEX=XED_REG_YMM11 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {1,3,0},
|
||
|
/*h(232)=12 INDEX=XED_REG_YMM12 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {1,4,0},
|
||
|
/*h(233)=13 INDEX=XED_REG_YMM13 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {1,5,0},
|
||
|
/*h(234)=14 INDEX=XED_REG_YMM14 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {1,6,0},
|
||
|
/*h(235)=15 INDEX=XED_REG_YMM15 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {1,7,0},
|
||
|
/*h(236)=16 INDEX=XED_REG_YMM16 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {0,0,1},
|
||
|
/*h(237)=17 INDEX=XED_REG_YMM17 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {0,1,1},
|
||
|
/*h(238)=18 INDEX=XED_REG_YMM18 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {0,2,1},
|
||
|
/*h(239)=19 INDEX=XED_REG_YMM19 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {0,3,1},
|
||
|
/*h(240)=20 INDEX=XED_REG_YMM20 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0,4,1},
|
||
|
/*h(241)=21 INDEX=XED_REG_YMM21 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {0,5,1},
|
||
|
/*h(242)=22 INDEX=XED_REG_YMM22 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {0,6,1},
|
||
|
/*h(243)=23 INDEX=XED_REG_YMM23 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {0,7,1},
|
||
|
/*h(244)=24 INDEX=XED_REG_YMM24 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {1,0,1},
|
||
|
/*h(245)=25 INDEX=XED_REG_YMM25 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {1,1,1},
|
||
|
/*h(246)=26 INDEX=XED_REG_YMM26 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {1,2,1},
|
||
|
/*h(247)=27 INDEX=XED_REG_YMM27 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {1,3,1},
|
||
|
/*h(248)=28 INDEX=XED_REG_YMM28 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {1,4,1},
|
||
|
/*h(249)=29 INDEX=XED_REG_YMM29 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {1,5,1},
|
||
|
/*h(250)=30 INDEX=XED_REG_YMM30 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {1,6,1},
|
||
|
/*h(251)=31 INDEX=XED_REG_YMM31 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {1,7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_INDEX(xes);
|
||
|
hidx = key - 220;
|
||
|
if(hidx <= 31) {
|
||
|
xed3_operand_set_rexx(xes,lu_table[hidx].rexx);
|
||
|
xed3_operand_set_sibindex(xes,lu_table[hidx].sibindex);
|
||
|
xed3_operand_set_vexdest4(xes,lu_table[hidx].vexdest4);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UISA_ENC_INDEX_XMM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexx ;xed_int8_t sibindex ;xed_int8_t vexdest4;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[32] = {
|
||
|
/*h(188)=0 INDEX=XED_REG_XMM0 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {0,0,0},
|
||
|
/*h(189)=1 INDEX=XED_REG_XMM1 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {0,1,0},
|
||
|
/*h(190)=2 INDEX=XED_REG_XMM2 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {0,2,0},
|
||
|
/*h(191)=3 INDEX=XED_REG_XMM3 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {0,3,0},
|
||
|
/*h(192)=4 INDEX=XED_REG_XMM4 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0,4,0},
|
||
|
/*h(193)=5 INDEX=XED_REG_XMM5 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {0,5,0},
|
||
|
/*h(194)=6 INDEX=XED_REG_XMM6 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {0,6,0},
|
||
|
/*h(195)=7 INDEX=XED_REG_XMM7 -> FB VEXDEST4=0 value=0x0 FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {0,7,0},
|
||
|
/*h(196)=8 INDEX=XED_REG_XMM8 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {1,0,0},
|
||
|
/*h(197)=9 INDEX=XED_REG_XMM9 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {1,1,0},
|
||
|
/*h(198)=10 INDEX=XED_REG_XMM10 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {1,2,0},
|
||
|
/*h(199)=11 INDEX=XED_REG_XMM11 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {1,3,0},
|
||
|
/*h(200)=12 INDEX=XED_REG_XMM12 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {1,4,0},
|
||
|
/*h(201)=13 INDEX=XED_REG_XMM13 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {1,5,0},
|
||
|
/*h(202)=14 INDEX=XED_REG_XMM14 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {1,6,0},
|
||
|
/*h(203)=15 INDEX=XED_REG_XMM15 -> FB VEXDEST4=0 value=0x0 FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {1,7,0},
|
||
|
/*h(204)=16 INDEX=XED_REG_XMM16 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {0,0,1},
|
||
|
/*h(205)=17 INDEX=XED_REG_XMM17 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {0,1,1},
|
||
|
/*h(206)=18 INDEX=XED_REG_XMM18 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {0,2,1},
|
||
|
/*h(207)=19 INDEX=XED_REG_XMM19 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {0,3,1},
|
||
|
/*h(208)=20 INDEX=XED_REG_XMM20 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0,4,1},
|
||
|
/*h(209)=21 INDEX=XED_REG_XMM21 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {0,5,1},
|
||
|
/*h(210)=22 INDEX=XED_REG_XMM22 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {0,6,1},
|
||
|
/*h(211)=23 INDEX=XED_REG_XMM23 -> FB VEXDEST4=1 value=0x1 FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {0,7,1},
|
||
|
/*h(212)=24 INDEX=XED_REG_XMM24 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {1,0,1},
|
||
|
/*h(213)=25 INDEX=XED_REG_XMM25 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {1,1,1},
|
||
|
/*h(214)=26 INDEX=XED_REG_XMM26 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {1,2,1},
|
||
|
/*h(215)=27 INDEX=XED_REG_XMM27 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {1,3,1},
|
||
|
/*h(216)=28 INDEX=XED_REG_XMM28 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {1,4,1},
|
||
|
/*h(217)=29 INDEX=XED_REG_XMM29 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {1,5,1},
|
||
|
/*h(218)=30 INDEX=XED_REG_XMM30 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {1,6,1},
|
||
|
/*h(219)=31 INDEX=XED_REG_XMM31 -> FB VEXDEST4=1 value=0x1 FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {1,7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_INDEX(xes);
|
||
|
hidx = key - 188;
|
||
|
if(hidx <= 31) {
|
||
|
xed3_operand_set_rexx(xes,lu_table[hidx].rexx);
|
||
|
xed3_operand_set_sibindex(xes,lu_table[hidx].sibindex);
|
||
|
xed3_operand_set_vexdest4(xes,lu_table[hidx].vexdest4);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_NELEM_QUARTER_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
return 1;
|
||
|
(void)xes;
|
||
|
return 1;
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ASZ_NONTERM_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t asz;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[9] = {
|
||
|
/*h(5)=0 EASZ=1 MODE=1 -> FB ASZ=1 value=0x1*/ {5, 1},
|
||
|
/*h(10)=1 EASZ=2 MODE=2 -> FB ASZ=1 value=0x1*/ {10, 1},
|
||
|
/*h(2)=2 EASZ=2 MODE=0 -> FB ASZ=1 value=0x1*/ {2, 1},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*h(1)=5 EASZ=1 MODE=0 -> FB ASZ=0 value=0x0*/ {1, 0},
|
||
|
/*h(6)=6 EASZ=2 MODE=1 -> FB ASZ=0 value=0x0*/ {6, 0},
|
||
|
/*h(11)=7 EASZ=3 MODE=2 -> FB ASZ=0 value=0x0*/ {11, 0},
|
||
|
/*empty slot1 */ {0,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_EASZ_MODE(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 9ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_asz(xes,lu_table[hidx].asz);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_ONE_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(648)=0 IMM_WIDTH=8 UIMM0=1 MODE=1 -> nothing*/ {648, },
|
||
|
/*h(520)=1 IMM_WIDTH=8 UIMM0=1 MODE=0 -> nothing*/ {520, },
|
||
|
/*h(776)=2 IMM_WIDTH=8 UIMM0=1 MODE=2 -> nothing*/ {776, }
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_IMM_WIDTH_MODE_UIMM0_1(xes);
|
||
|
hidx = (4*key % 3);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UIMMv_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(259)=0 IMM_WIDTH=64 EOSZ=3 UIMM0[iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii emit_type=letters nbits=64*/ {259, 1},
|
||
|
/*h(65)=1 IMM_WIDTH=16 EOSZ=1 UIMM0[iiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiii emit_type=letters nbits=16*/ {65, 2},
|
||
|
/*h(130)=2 IMM_WIDTH=32 EOSZ=2 UIMM0[iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii emit_type=letters nbits=32*/ {130, 3},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*empty slot1 */ {0,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_EOSZ_IMM_WIDTH(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed_encoder_request_iforms(xes)->x_UIMMv=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_SIMMz_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t imm0signed ;xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(65)=0 IMM_WIDTH=16 EOSZ=1 UIMM0[iiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiii emit_type=letters nbits=16 FB IMM0SIGNED=1 value=0x1*/ {65, 1,1},
|
||
|
/*h(130)=1 IMM_WIDTH=32 EOSZ=2 UIMM0[iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii emit_type=letters nbits=32 FB IMM0SIGNED=1 value=0x1*/ {130, 1,2},
|
||
|
/*h(131)=2 IMM_WIDTH=32 EOSZ=3 UIMM0[iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii emit_type=letters nbits=32 FB IMM0SIGNED=1 value=0x1*/ {131, 1,3}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_EOSZ_IMM_WIDTH(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_imm0signed(xes,lu_table[hidx].imm0signed);
|
||
|
xed_encoder_request_iforms(xes)->x_SIMMz=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_SIMM8_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_int8_t imm0signed ;xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(8)=0 IMM_WIDTH=8 UIMM0[iiiiiiii]=* -> emit uimm0=iiiiiiii emit_type=letters nbits=8 FB IMM0SIGNED=1 value=0x1*/ {1,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_IMM_WIDTH(xes);
|
||
|
hidx = key - 8;
|
||
|
if(hidx == 0) {
|
||
|
xed3_operand_set_imm0signed(xes,lu_table[hidx].imm0signed);
|
||
|
xed_encoder_request_iforms(xes)->x_SIMM8=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UIMM8_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(8)=0 IMM_WIDTH=8 UIMM0[iiiiiiii]=* -> emit uimm0=iiiiiiii emit_type=letters nbits=8*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_IMM_WIDTH(xes);
|
||
|
hidx = key - 8;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_UIMM8=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UIMM8_1_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(0)=0 DUMMY=0 UIMM1[iiiiiiii]=* -> emit uimm1=iiiiiiii emit_type=letters nbits=8*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_DUMMY(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_UIMM8_1=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UIMM16_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(16)=0 IMM_WIDTH=16 UIMM0[iiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiii emit_type=letters nbits=16*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_IMM_WIDTH(xes);
|
||
|
hidx = key - 16;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_UIMM16=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_UIMM32_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(32)=0 IMM_WIDTH=32 UIMM0[iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii]=* -> emit uimm0=iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii emit_type=letters nbits=32*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_IMM_WIDTH(xes);
|
||
|
hidx = key - 32;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_UIMM32=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_BRDISP8_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(8)=0 BRDISP_WIDTH=8 DISP[dddddddd]=* -> emit disp=dddddddd emit_type=letters nbits=8*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_BRDISP_WIDTH(xes);
|
||
|
hidx = key - 8;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_BRDISP8=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_BRDISP32_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(32)=0 BRDISP_WIDTH=32 DISP[dddddddddddddddddddddddddddddddd]=* -> emit disp=dddddddddddddddddddddddddddddddd emit_type=letters nbits=32*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_BRDISP_WIDTH(xes);
|
||
|
hidx = key - 32;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_BRDISP32=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_BRDISPz_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(224)=0 BRDISP_WIDTH=32 EOSZ=3 DISP[dddddddddddddddddddddddddddddddd]=* -> emit disp=dddddddddddddddddddddddddddddddd emit_type=letters nbits=32*/ {224, 1},
|
||
|
/*h(160)=1 BRDISP_WIDTH=32 EOSZ=2 DISP[dddddddddddddddddddddddddddddddd]=* -> emit disp=dddddddddddddddddddddddddddddddd emit_type=letters nbits=32*/ {160, 2},
|
||
|
/*h(80)=2 BRDISP_WIDTH=16 EOSZ=1 DISP[dddddddddddddddd]=* -> emit disp=dddddddddddddddd emit_type=letters nbits=16*/ {80, 3}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_BRDISP_WIDTH_EOSZ(xes);
|
||
|
hidx = ((3*key % 7) % 3);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed_encoder_request_iforms(xes)->x_BRDISPz=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_MEMDISPv_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(448)=0 DISP_WIDTH=64 EASZ=3 DISP[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]=* -> emit disp=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa emit_type=letters nbits=64*/ {448, 1},
|
||
|
/*h(288)=1 DISP_WIDTH=32 EASZ=2 DISP[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]=* -> emit disp=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa emit_type=letters nbits=32*/ {288, 2},
|
||
|
/*h(144)=2 DISP_WIDTH=16 EASZ=1 DISP[aaaaaaaaaaaaaaaa]=* -> emit disp=aaaaaaaaaaaaaaaa emit_type=letters nbits=16*/ {144, 3}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_DISP_WIDTH_EASZ(xes);
|
||
|
hidx = ((4*key % 7) % 3);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed_encoder_request_iforms(xes)->x_MEMDISPv=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_MEMDISP32_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(32)=0 DISP_WIDTH=32 DISP[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]=* -> emit disp=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa emit_type=letters nbits=32*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_DISP_WIDTH(xes);
|
||
|
hidx = key - 32;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_MEMDISP32=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_MEMDISP16_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(16)=0 DISP_WIDTH=16 DISP[aaaaaaaaaaaaaaaa]=* -> emit disp=aaaaaaaaaaaaaaaa emit_type=letters nbits=16*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_DISP_WIDTH(xes);
|
||
|
hidx = key - 16;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_MEMDISP16=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_MEMDISP8_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct { xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[1] = {
|
||
|
/*h(8)=0 DISP_WIDTH=8 DISP[aaaaaaaa]=* -> emit disp=aaaaaaaa emit_type=letters nbits=8*/ {1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_DISP_WIDTH(xes);
|
||
|
hidx = key - 8;
|
||
|
if(hidx == 0) {
|
||
|
xed_encoder_request_iforms(xes)->x_MEMDISP8=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_nonterminal_MEMDISP_BIND(xed_encoder_request_t* xes)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t need_memdisp ;xed_uint32_t emit;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*h(0)=0 DISP_WIDTH=0 -> FB NEED_MEMDISP=0 value=0x0*/ {0, 0,0},
|
||
|
/*h(16)=1 DISP_WIDTH=16 DISP[aaaaaaaaaaaaaaaa]=* -> FB NEED_MEMDISP=16 value=0x10 emit disp=aaaaaaaaaaaaaaaa emit_type=letters nbits=16*/ {16, 16,2},
|
||
|
/*h(32)=2 DISP_WIDTH=32 DISP[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]=* -> FB NEED_MEMDISP=32 value=0x20 emit disp=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa emit_type=letters nbits=32*/ {32, 32,3},
|
||
|
/*h(8)=3 DISP_WIDTH=8 DISP[aaaaaaaa]=* -> FB NEED_MEMDISP=8 value=0x8 emit disp=aaaaaaaa emit_type=letters nbits=8*/ {8, 8,4}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
key = xed_enc_lu_DISP_WIDTH(xes);
|
||
|
hidx = ((6*key % 5) % 4);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_need_memdisp(xes,lu_table[hidx].need_memdisp);
|
||
|
xed_encoder_request_iforms(xes)->x_MEMDISP=lu_table[hidx].emit;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR8_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t needrex ;xed_int8_t norex ;xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[20] = {
|
||
|
/*h(82)=0 OUTREG=XED_REG_AL -> FB REG=0 value=0x0*/ {-1,-1,0,-1},
|
||
|
/*h(83)=1 OUTREG=XED_REG_CL -> FB REG=1 value=0x1*/ {-1,-1,1,-1},
|
||
|
/*h(84)=2 OUTREG=XED_REG_DL -> FB REG=2 value=0x2*/ {-1,-1,2,-1},
|
||
|
/*h(85)=3 OUTREG=XED_REG_BL -> FB REG=3 value=0x3*/ {-1,-1,3,-1},
|
||
|
/*h(86)=4 OUTREG=XED_REG_SPL -> FB REG=4 value=0x4 FB NEEDREX=1 value=0x1*/ {1,-1,4,-1},
|
||
|
/*h(87)=5 OUTREG=XED_REG_BPL -> FB REG=5 value=0x5 FB NEEDREX=1 value=0x1*/ {1,-1,5,-1},
|
||
|
/*h(88)=6 OUTREG=XED_REG_SIL -> FB REG=6 value=0x6 FB NEEDREX=1 value=0x1*/ {1,-1,6,-1},
|
||
|
/*h(89)=7 OUTREG=XED_REG_DIL -> FB REG=7 value=0x7 FB NEEDREX=1 value=0x1*/ {1,-1,7,-1},
|
||
|
/*h(90)=8 OUTREG=XED_REG_R8B -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {-1,-1,0,1},
|
||
|
/*h(91)=9 OUTREG=XED_REG_R9B -> FB REXR=1 value=0x1 FB REG=1 value=0x1*/ {-1,-1,1,1},
|
||
|
/*h(92)=10 OUTREG=XED_REG_R10B -> FB REXR=1 value=0x1 FB REG=2 value=0x2*/ {-1,-1,2,1},
|
||
|
/*h(93)=11 OUTREG=XED_REG_R11B -> FB REXR=1 value=0x1 FB REG=3 value=0x3*/ {-1,-1,3,1},
|
||
|
/*h(94)=12 OUTREG=XED_REG_R12B -> FB REXR=1 value=0x1 FB REG=4 value=0x4*/ {-1,-1,4,1},
|
||
|
/*h(95)=13 OUTREG=XED_REG_R13B -> FB REXR=1 value=0x1 FB REG=5 value=0x5*/ {-1,-1,5,1},
|
||
|
/*h(96)=14 OUTREG=XED_REG_R14B -> FB REXR=1 value=0x1 FB REG=6 value=0x6*/ {-1,-1,6,1},
|
||
|
/*h(97)=15 OUTREG=XED_REG_R15B -> FB REXR=1 value=0x1 FB REG=7 value=0x7*/ {-1,-1,7,1},
|
||
|
/*h(98)=16 OUTREG=XED_REG_AH -> FB REG=4 value=0x4 FB NOREX=1 value=0x1*/ {-1,1,4,-1},
|
||
|
/*h(99)=17 OUTREG=XED_REG_CH -> FB REG=5 value=0x5 FB NOREX=1 value=0x1*/ {-1,1,5,-1},
|
||
|
/*h(100)=18 OUTREG=XED_REG_DH -> FB REG=6 value=0x6 FB NOREX=1 value=0x1*/ {-1,1,6,-1},
|
||
|
/*h(101)=19 OUTREG=XED_REG_BH -> FB REG=7 value=0x7 FB NOREX=1 value=0x1*/ {-1,1,7,-1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 82;
|
||
|
if(hidx <= 19) {
|
||
|
if(lu_table[hidx].needrex >= 0) xed3_operand_set_needrex(xes,lu_table[hidx].needrex);
|
||
|
if(lu_table[hidx].norex >= 0) xed3_operand_set_norex(xes,lu_table[hidx].norex);
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
if(lu_table[hidx].rexr >= 0) xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR8_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t needrex ;xed_int8_t norex ;xed_int8_t rexb ;xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[20] = {
|
||
|
/*h(82)=0 OUTREG=XED_REG_AL -> FB RM=0 value=0x0*/ {-1,-1,-1,0},
|
||
|
/*h(83)=1 OUTREG=XED_REG_CL -> FB RM=1 value=0x1*/ {-1,-1,-1,1},
|
||
|
/*h(84)=2 OUTREG=XED_REG_DL -> FB RM=2 value=0x2*/ {-1,-1,-1,2},
|
||
|
/*h(85)=3 OUTREG=XED_REG_BL -> FB RM=3 value=0x3*/ {-1,-1,-1,3},
|
||
|
/*h(86)=4 OUTREG=XED_REG_SPL -> FB RM=4 value=0x4 FB NEEDREX=1 value=0x1*/ {1,-1,-1,4},
|
||
|
/*h(87)=5 OUTREG=XED_REG_BPL -> FB RM=5 value=0x5 FB NEEDREX=1 value=0x1*/ {1,-1,-1,5},
|
||
|
/*h(88)=6 OUTREG=XED_REG_SIL -> FB RM=6 value=0x6 FB NEEDREX=1 value=0x1*/ {1,-1,-1,6},
|
||
|
/*h(89)=7 OUTREG=XED_REG_DIL -> FB RM=7 value=0x7 FB NEEDREX=1 value=0x1*/ {1,-1,-1,7},
|
||
|
/*h(90)=8 OUTREG=XED_REG_R8B -> FB REXB=1 value=0x1 FB RM=0 value=0x0*/ {-1,-1,1,0},
|
||
|
/*h(91)=9 OUTREG=XED_REG_R9B -> FB REXB=1 value=0x1 FB RM=1 value=0x1*/ {-1,-1,1,1},
|
||
|
/*h(92)=10 OUTREG=XED_REG_R10B -> FB REXB=1 value=0x1 FB RM=2 value=0x2*/ {-1,-1,1,2},
|
||
|
/*h(93)=11 OUTREG=XED_REG_R11B -> FB REXB=1 value=0x1 FB RM=3 value=0x3*/ {-1,-1,1,3},
|
||
|
/*h(94)=12 OUTREG=XED_REG_R12B -> FB REXB=1 value=0x1 FB RM=4 value=0x4*/ {-1,-1,1,4},
|
||
|
/*h(95)=13 OUTREG=XED_REG_R13B -> FB REXB=1 value=0x1 FB RM=5 value=0x5*/ {-1,-1,1,5},
|
||
|
/*h(96)=14 OUTREG=XED_REG_R14B -> FB REXB=1 value=0x1 FB RM=6 value=0x6*/ {-1,-1,1,6},
|
||
|
/*h(97)=15 OUTREG=XED_REG_R15B -> FB REXB=1 value=0x1 FB RM=7 value=0x7*/ {-1,-1,1,7},
|
||
|
/*h(98)=16 OUTREG=XED_REG_AH -> FB RM=4 value=0x4 FB NOREX=1 value=0x1*/ {-1,1,-1,4},
|
||
|
/*h(99)=17 OUTREG=XED_REG_CH -> FB RM=5 value=0x5 FB NOREX=1 value=0x1*/ {-1,1,-1,5},
|
||
|
/*h(100)=18 OUTREG=XED_REG_DH -> FB RM=6 value=0x6 FB NOREX=1 value=0x1*/ {-1,1,-1,6},
|
||
|
/*h(101)=19 OUTREG=XED_REG_BH -> FB RM=7 value=0x7 FB NOREX=1 value=0x1*/ {-1,1,-1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 82;
|
||
|
if(hidx <= 19) {
|
||
|
if(lu_table[hidx].needrex >= 0) xed3_operand_set_needrex(xes,lu_table[hidx].needrex);
|
||
|
if(lu_table[hidx].norex >= 0) xed3_operand_set_norex(xes,lu_table[hidx].norex);
|
||
|
if(lu_table[hidx].rexb >= 0) xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR8_SB(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t needrex ;xed_int8_t norex ;xed_int8_t rexb ;xed_int8_t srm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[20] = {
|
||
|
/*h(82)=0 OUTREG=XED_REG_AL -> FB SRM=0 value=0x0*/ {-1,-1,-1,0},
|
||
|
/*h(83)=1 OUTREG=XED_REG_CL -> FB SRM=1 value=0x1*/ {-1,-1,-1,1},
|
||
|
/*h(84)=2 OUTREG=XED_REG_DL -> FB SRM=2 value=0x2*/ {-1,-1,-1,2},
|
||
|
/*h(85)=3 OUTREG=XED_REG_BL -> FB SRM=3 value=0x3*/ {-1,-1,-1,3},
|
||
|
/*h(86)=4 OUTREG=XED_REG_SPL -> FB SRM=4 value=0x4 FB NEEDREX=1 value=0x1*/ {1,-1,-1,4},
|
||
|
/*h(87)=5 OUTREG=XED_REG_BPL -> FB SRM=5 value=0x5 FB NEEDREX=1 value=0x1*/ {1,-1,-1,5},
|
||
|
/*h(88)=6 OUTREG=XED_REG_SIL -> FB SRM=6 value=0x6 FB NEEDREX=1 value=0x1*/ {1,-1,-1,6},
|
||
|
/*h(89)=7 OUTREG=XED_REG_DIL -> FB SRM=7 value=0x7 FB NEEDREX=1 value=0x1*/ {1,-1,-1,7},
|
||
|
/*h(90)=8 OUTREG=XED_REG_R8B -> FB REXB=1 value=0x1 FB SRM=0 value=0x0*/ {-1,-1,1,0},
|
||
|
/*h(91)=9 OUTREG=XED_REG_R9B -> FB REXB=1 value=0x1 FB SRM=1 value=0x1*/ {-1,-1,1,1},
|
||
|
/*h(92)=10 OUTREG=XED_REG_R10B -> FB REXB=1 value=0x1 FB SRM=2 value=0x2*/ {-1,-1,1,2},
|
||
|
/*h(93)=11 OUTREG=XED_REG_R11B -> FB REXB=1 value=0x1 FB SRM=3 value=0x3*/ {-1,-1,1,3},
|
||
|
/*h(94)=12 OUTREG=XED_REG_R12B -> FB REXB=1 value=0x1 FB SRM=4 value=0x4*/ {-1,-1,1,4},
|
||
|
/*h(95)=13 OUTREG=XED_REG_R13B -> FB REXB=1 value=0x1 FB SRM=5 value=0x5*/ {-1,-1,1,5},
|
||
|
/*h(96)=14 OUTREG=XED_REG_R14B -> FB REXB=1 value=0x1 FB SRM=6 value=0x6*/ {-1,-1,1,6},
|
||
|
/*h(97)=15 OUTREG=XED_REG_R15B -> FB REXB=1 value=0x1 FB SRM=7 value=0x7*/ {-1,-1,1,7},
|
||
|
/*h(98)=16 OUTREG=XED_REG_AH -> FB SRM=4 value=0x4 FB NOREX=1 value=0x1*/ {-1,1,-1,4},
|
||
|
/*h(99)=17 OUTREG=XED_REG_CH -> FB SRM=5 value=0x5 FB NOREX=1 value=0x1*/ {-1,1,-1,5},
|
||
|
/*h(100)=18 OUTREG=XED_REG_DH -> FB SRM=6 value=0x6 FB NOREX=1 value=0x1*/ {-1,1,-1,6},
|
||
|
/*h(101)=19 OUTREG=XED_REG_BH -> FB SRM=7 value=0x7 FB NOREX=1 value=0x1*/ {-1,1,-1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 82;
|
||
|
if(hidx <= 19) {
|
||
|
if(lu_table[hidx].needrex >= 0) xed3_operand_set_needrex(xes,lu_table[hidx].needrex);
|
||
|
if(lu_table[hidx].norex >= 0) xed3_operand_set_norex(xes,lu_table[hidx].norex);
|
||
|
if(lu_table[hidx].rexb >= 0) xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_srm(xes,lu_table[hidx].srm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_SEGe(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 148;
|
||
|
if(hidx <= 5) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR16e(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 34;
|
||
|
if(hidx <= 7) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32e(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[36] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(246)=1 MODE=2 OUTREG=XED_REG_R11D -> nothing*/ {246, },
|
||
|
/*h(225)=2 MODE=1 OUTREG=XED_REG_ESI -> nothing*/ {225, },
|
||
|
/*h(238)=3 MODE=2 OUTREG=XED_REG_R9D -> nothing*/ {238, },
|
||
|
/*h(217)=4 MODE=1 OUTREG=XED_REG_ESP -> nothing*/ {217, },
|
||
|
/*h(230)=5 MODE=2 OUTREG=XED_REG_EDI -> nothing*/ {230, },
|
||
|
/*h(209)=6 MODE=1 OUTREG=XED_REG_EDX -> nothing*/ {209, },
|
||
|
/*h(222)=7 MODE=2 OUTREG=XED_REG_EBP -> nothing*/ {222, },
|
||
|
/*h(201)=8 MODE=1 OUTREG=XED_REG_EAX -> nothing*/ {201, },
|
||
|
/*h(214)=9 MODE=2 OUTREG=XED_REG_EBX -> nothing*/ {214, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(206)=11 MODE=2 OUTREG=XED_REG_ECX -> nothing*/ {206, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(258)=16 MODE=2 OUTREG=XED_REG_R14D -> nothing*/ {258, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(250)=18 MODE=2 OUTREG=XED_REG_R12D -> nothing*/ {250, },
|
||
|
/*h(229)=19 MODE=1 OUTREG=XED_REG_EDI -> nothing*/ {229, },
|
||
|
/*h(242)=20 MODE=2 OUTREG=XED_REG_R10D -> nothing*/ {242, },
|
||
|
/*h(221)=21 MODE=1 OUTREG=XED_REG_EBP -> nothing*/ {221, },
|
||
|
/*h(234)=22 MODE=2 OUTREG=XED_REG_R8D -> nothing*/ {234, },
|
||
|
/*h(213)=23 MODE=1 OUTREG=XED_REG_EBX -> nothing*/ {213, },
|
||
|
/*h(226)=24 MODE=2 OUTREG=XED_REG_ESI -> nothing*/ {226, },
|
||
|
/*h(205)=25 MODE=1 OUTREG=XED_REG_ECX -> nothing*/ {205, },
|
||
|
/*h(218)=26 MODE=2 OUTREG=XED_REG_ESP -> nothing*/ {218, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(210)=28 MODE=2 OUTREG=XED_REG_EDX -> nothing*/ {210, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(202)=30 MODE=2 OUTREG=XED_REG_EAX -> nothing*/ {202, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(262)=33 MODE=2 OUTREG=XED_REG_R15D -> nothing*/ {262, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(254)=35 MODE=2 OUTREG=XED_REG_R13D -> nothing*/ {254, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 36ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32e_m32(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 50;
|
||
|
if(hidx <= 7) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32e_m64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 50;
|
||
|
if(hidx <= 15) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR64e(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 66;
|
||
|
if(hidx <= 15) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArAX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*h(267)=0 OUTREG=XED_REG_RAX EASZ=3 -> nothing*/ {267, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(137)=2 OUTREG=XED_REG_AX EASZ=1 -> nothing*/ {137, },
|
||
|
/*h(202)=3 OUTREG=XED_REG_EAX EASZ=2 -> nothing*/ {202, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArBX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*h(149)=0 OUTREG=XED_REG_BX EASZ=1 -> nothing*/ {149, },
|
||
|
/*h(214)=1 OUTREG=XED_REG_EBX EASZ=2 -> nothing*/ {214, },
|
||
|
/*h(279)=2 OUTREG=XED_REG_RBX EASZ=3 -> nothing*/ {279, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArCX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*h(141)=0 OUTREG=XED_REG_CX EASZ=1 -> nothing*/ {141, },
|
||
|
/*h(206)=1 OUTREG=XED_REG_ECX EASZ=2 -> nothing*/ {206, },
|
||
|
/*h(271)=2 OUTREG=XED_REG_RCX EASZ=3 -> nothing*/ {271, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArDX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(145)=3 OUTREG=XED_REG_DX EASZ=1 -> nothing*/ {145, },
|
||
|
/*h(210)=4 OUTREG=XED_REG_EDX EASZ=2 -> nothing*/ {210, },
|
||
|
/*h(275)=5 OUTREG=XED_REG_RDX EASZ=3 -> nothing*/ {275, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArSI(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(161)=2 OUTREG=XED_REG_SI EASZ=1 -> nothing*/ {161, },
|
||
|
/*h(226)=3 OUTREG=XED_REG_ESI EASZ=2 -> nothing*/ {226, },
|
||
|
/*h(291)=4 OUTREG=XED_REG_RSI EASZ=3 -> nothing*/ {291, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArDI(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*h(230)=0 OUTREG=XED_REG_EDI EASZ=2 -> nothing*/ {230, },
|
||
|
/*h(295)=1 OUTREG=XED_REG_RDI EASZ=3 -> nothing*/ {295, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(165)=3 OUTREG=XED_REG_DI EASZ=1 -> nothing*/ {165, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArSP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(153)=2 OUTREG=XED_REG_SP EASZ=1 -> nothing*/ {153, },
|
||
|
/*h(218)=3 OUTREG=XED_REG_ESP EASZ=2 -> nothing*/ {218, },
|
||
|
/*h(283)=4 OUTREG=XED_REG_RSP EASZ=3 -> nothing*/ {283, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_ArBP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(157)=0 OUTREG=XED_REG_BP EASZ=1 -> nothing*/ {157, },
|
||
|
/*h(222)=1 OUTREG=XED_REG_EBP EASZ=2 -> nothing*/ {222, },
|
||
|
/*h(287)=2 OUTREG=XED_REG_RBP EASZ=3 -> nothing*/ {287, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_SrSP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1094)=0 OUTREG=XED_REG_RSP SMODE=2 -> nothing*/ {1094, },
|
||
|
/*h(38)=1 OUTREG=XED_REG_SP SMODE=0 -> nothing*/ {38, },
|
||
|
/*h(566)=2 OUTREG=XED_REG_ESP SMODE=1 -> nothing*/ {566, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG_SMODE(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_SrBP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(39)=0 OUTREG=XED_REG_BP SMODE=0 -> nothing*/ {39, },
|
||
|
/*h(567)=1 OUTREG=XED_REG_EBP SMODE=1 -> nothing*/ {567, },
|
||
|
/*h(1095)=2 OUTREG=XED_REG_RBP SMODE=2 -> nothing*/ {1095, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG_SMODE(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar8(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(169)=1 OUTREG=XED_REG_R8W EASZ=1 -> nothing*/ {169, },
|
||
|
/*h(234)=2 OUTREG=XED_REG_R8D EASZ=2 -> nothing*/ {234, },
|
||
|
/*h(299)=3 OUTREG=XED_REG_R8 EASZ=3 -> nothing*/ {299, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar9(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*h(238)=0 OUTREG=XED_REG_R9D EASZ=2 -> nothing*/ {238, },
|
||
|
/*h(303)=1 OUTREG=XED_REG_R9 EASZ=3 -> nothing*/ {303, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(173)=3 OUTREG=XED_REG_R9W EASZ=1 -> nothing*/ {173, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar10(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(177)=1 OUTREG=XED_REG_R10W EASZ=1 -> nothing*/ {177, },
|
||
|
/*h(242)=2 OUTREG=XED_REG_R10D EASZ=2 -> nothing*/ {242, },
|
||
|
/*h(307)=3 OUTREG=XED_REG_R10 EASZ=3 -> nothing*/ {307, },
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar11(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*h(246)=0 OUTREG=XED_REG_R11D EASZ=2 -> nothing*/ {246, },
|
||
|
/*h(311)=1 OUTREG=XED_REG_R11 EASZ=3 -> nothing*/ {311, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(181)=4 OUTREG=XED_REG_R11W EASZ=1 -> nothing*/ {181, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar12(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(185)=1 OUTREG=XED_REG_R12W EASZ=1 -> nothing*/ {185, },
|
||
|
/*h(250)=2 OUTREG=XED_REG_R12D EASZ=2 -> nothing*/ {250, },
|
||
|
/*h(315)=3 OUTREG=XED_REG_R12 EASZ=3 -> nothing*/ {315, },
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar13(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(319)=0 OUTREG=XED_REG_R13 EASZ=3 -> nothing*/ {319, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(189)=4 OUTREG=XED_REG_R13W EASZ=1 -> nothing*/ {189, },
|
||
|
/*h(254)=5 OUTREG=XED_REG_R13D EASZ=2 -> nothing*/ {254, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar14(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(193)=1 OUTREG=XED_REG_R14W EASZ=1 -> nothing*/ {193, },
|
||
|
/*h(258)=2 OUTREG=XED_REG_R14D EASZ=2 -> nothing*/ {258, },
|
||
|
/*h(323)=3 OUTREG=XED_REG_R14 EASZ=3 -> nothing*/ {323, },
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_Ar15(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*h(327)=0 OUTREG=XED_REG_R15 EASZ=3 -> nothing*/ {327, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(197)=3 OUTREG=XED_REG_R15W EASZ=1 -> nothing*/ {197, },
|
||
|
/*h(262)=4 OUTREG=XED_REG_R15D EASZ=2 -> nothing*/ {262, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_rIP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*h(416)=0 OUTREG=XED_REG_EIP MODE=0 -> nothing*/ {416, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(417)=2 OUTREG=XED_REG_EIP MODE=1 -> nothing*/ {417, },
|
||
|
/*h(414)=3 OUTREG=XED_REG_RIP MODE=2 -> nothing*/ {414, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_rIPa(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[2] = {
|
||
|
/*h(418)=0 OUTREG=XED_REG_EIP EASZ=2 -> nothing*/ {418, },
|
||
|
/*h(415)=1 OUTREG=XED_REG_RIP EASZ=3 -> nothing*/ {415, }
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EASZ_OUTREG(xes);
|
||
|
hidx = (3*key % 2);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OeAX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(203)=1 OUTREG=XED_REG_EAX EOSZ=3 -> nothing*/ {203, },
|
||
|
/*h(137)=2 OUTREG=XED_REG_AX EOSZ=1 -> nothing*/ {137, },
|
||
|
/*h(202)=3 OUTREG=XED_REG_EAX EOSZ=2 -> nothing*/ {202, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OrAX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[4] = {
|
||
|
/*h(267)=0 OUTREG=XED_REG_RAX EOSZ=3 -> nothing*/ {267, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(137)=2 OUTREG=XED_REG_AX EOSZ=1 -> nothing*/ {137, },
|
||
|
/*h(202)=3 OUTREG=XED_REG_EAX EOSZ=2 -> nothing*/ {202, }
|
||
|
};
|
||
|
xed_union64_t t;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, t.s.lo32 >> (32-2));
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OrDX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(145)=3 OUTREG=XED_REG_DX EOSZ=1 -> nothing*/ {145, },
|
||
|
/*h(210)=4 OUTREG=XED_REG_EDX EOSZ=2 -> nothing*/ {210, },
|
||
|
/*h(275)=5 OUTREG=XED_REG_RDX EOSZ=3 -> nothing*/ {275, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OrCX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*h(141)=0 OUTREG=XED_REG_CX EOSZ=1 -> nothing*/ {141, },
|
||
|
/*h(206)=1 OUTREG=XED_REG_ECX EOSZ=2 -> nothing*/ {206, },
|
||
|
/*h(271)=2 OUTREG=XED_REG_RCX EOSZ=3 -> nothing*/ {271, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OrBX(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*h(149)=0 OUTREG=XED_REG_BX EOSZ=1 -> nothing*/ {149, },
|
||
|
/*h(214)=1 OUTREG=XED_REG_EBX EOSZ=2 -> nothing*/ {214, },
|
||
|
/*h(279)=2 OUTREG=XED_REG_RBX EOSZ=3 -> nothing*/ {279, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OrSP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[5] = {
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*h(153)=2 OUTREG=XED_REG_SP EOSZ=1 -> nothing*/ {153, },
|
||
|
/*h(218)=3 OUTREG=XED_REG_ESP EOSZ=2 -> nothing*/ {218, },
|
||
|
/*h(283)=4 OUTREG=XED_REG_RSP EOSZ=3 -> nothing*/ {283, }
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 5ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_OrBP(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(157)=0 OUTREG=XED_REG_BP EOSZ=1 -> nothing*/ {157, },
|
||
|
/*h(222)=1 OUTREG=XED_REG_EBP EOSZ=2 -> nothing*/ {222, },
|
||
|
/*h(287)=2 OUTREG=XED_REG_RBP EOSZ=3 -> nothing*/ {287, },
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0},
|
||
|
/*empty slot1 */ {0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_rFLAGS(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; } lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(129)=0 OUTREG=XED_REG_EFLAGS MODE=1 -> nothing*/ {129, },
|
||
|
/*h(124)=1 OUTREG=XED_REG_FLAGS MODE=0 -> nothing*/ {124, },
|
||
|
/*h(134)=2 OUTREG=XED_REG_RFLAGS MODE=2 -> nothing*/ {134, }
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (4*key % 3);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_MMX_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t reg;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[8] = {
|
||
|
/*h(114)=0 OUTREG=XED_REG_MMX0 -> FB REG=0 value=0x0*/ {0},
|
||
|
/*h(115)=1 OUTREG=XED_REG_MMX1 -> FB REG=1 value=0x1*/ {1},
|
||
|
/*h(116)=2 OUTREG=XED_REG_MMX2 -> FB REG=2 value=0x2*/ {2},
|
||
|
/*h(117)=3 OUTREG=XED_REG_MMX3 -> FB REG=3 value=0x3*/ {3},
|
||
|
/*h(118)=4 OUTREG=XED_REG_MMX4 -> FB REG=4 value=0x4*/ {4},
|
||
|
/*h(119)=5 OUTREG=XED_REG_MMX5 -> FB REG=5 value=0x5*/ {5},
|
||
|
/*h(120)=6 OUTREG=XED_REG_MMX6 -> FB REG=6 value=0x6*/ {6},
|
||
|
/*h(121)=7 OUTREG=XED_REG_MMX7 -> FB REG=7 value=0x7*/ {7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 114;
|
||
|
if(hidx <= 7) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_MMX_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[8] = {
|
||
|
/*h(114)=0 OUTREG=XED_REG_MMX0 -> FB RM=0 value=0x0*/ {0},
|
||
|
/*h(115)=1 OUTREG=XED_REG_MMX1 -> FB RM=1 value=0x1*/ {1},
|
||
|
/*h(116)=2 OUTREG=XED_REG_MMX2 -> FB RM=2 value=0x2*/ {2},
|
||
|
/*h(117)=3 OUTREG=XED_REG_MMX3 -> FB RM=3 value=0x3*/ {3},
|
||
|
/*h(118)=4 OUTREG=XED_REG_MMX4 -> FB RM=4 value=0x4*/ {4},
|
||
|
/*h(119)=5 OUTREG=XED_REG_MMX5 -> FB RM=5 value=0x5*/ {5},
|
||
|
/*h(120)=6 OUTREG=XED_REG_MMX6 -> FB RM=6 value=0x6*/ {6},
|
||
|
/*h(121)=7 OUTREG=XED_REG_MMX7 -> FB RM=7 value=0x7*/ {7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 114;
|
||
|
if(hidx <= 7) {
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRv_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR16_R},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_R},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR64_R}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRv_SB(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR16_SB},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_SB},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR64_SB}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRz_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR16_R},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_R},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR32_R}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRv_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR16_B},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_B},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR64_B}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRz_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR16_B},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_B},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR32_B}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRy_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR32_B},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_B},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR64_B}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPRy_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(1)=0 EOSZ=1 -> ntluf*/ {xed_encode_ntluf_GPR32_R},
|
||
|
/*h(2)=1 EOSZ=2 -> ntluf*/ {xed_encode_ntluf_GPR32_R},
|
||
|
/*h(3)=2 EOSZ=3 -> ntluf*/ {xed_encode_ntluf_GPR64_R}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_EOSZ(xes);
|
||
|
hidx = key - 1;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR64_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(66)=0 OUTREG=XED_REG_RAX -> FB REXR=0 value=0x0 FB REG=0 value=0x0*/ {0,0},
|
||
|
/*h(67)=1 OUTREG=XED_REG_RCX -> FB REXR=0 value=0x0 FB REG=1 value=0x1*/ {1,0},
|
||
|
/*h(68)=2 OUTREG=XED_REG_RDX -> FB REXR=0 value=0x0 FB REG=2 value=0x2*/ {2,0},
|
||
|
/*h(69)=3 OUTREG=XED_REG_RBX -> FB REXR=0 value=0x0 FB REG=3 value=0x3*/ {3,0},
|
||
|
/*h(70)=4 OUTREG=XED_REG_RSP -> FB REXR=0 value=0x0 FB REG=4 value=0x4*/ {4,0},
|
||
|
/*h(71)=5 OUTREG=XED_REG_RBP -> FB REXR=0 value=0x0 FB REG=5 value=0x5*/ {5,0},
|
||
|
/*h(72)=6 OUTREG=XED_REG_RSI -> FB REXR=0 value=0x0 FB REG=6 value=0x6*/ {6,0},
|
||
|
/*h(73)=7 OUTREG=XED_REG_RDI -> FB REXR=0 value=0x0 FB REG=7 value=0x7*/ {7,0},
|
||
|
/*h(74)=8 OUTREG=XED_REG_R8 -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {0,1},
|
||
|
/*h(75)=9 OUTREG=XED_REG_R9 -> FB REXR=1 value=0x1 FB REG=1 value=0x1*/ {1,1},
|
||
|
/*h(76)=10 OUTREG=XED_REG_R10 -> FB REXR=1 value=0x1 FB REG=2 value=0x2*/ {2,1},
|
||
|
/*h(77)=11 OUTREG=XED_REG_R11 -> FB REXR=1 value=0x1 FB REG=3 value=0x3*/ {3,1},
|
||
|
/*h(78)=12 OUTREG=XED_REG_R12 -> FB REXR=1 value=0x1 FB REG=4 value=0x4*/ {4,1},
|
||
|
/*h(79)=13 OUTREG=XED_REG_R13 -> FB REXR=1 value=0x1 FB REG=5 value=0x5*/ {5,1},
|
||
|
/*h(80)=14 OUTREG=XED_REG_R14 -> FB REXR=1 value=0x1 FB REG=6 value=0x6*/ {6,1},
|
||
|
/*h(81)=15 OUTREG=XED_REG_R15 -> FB REXR=1 value=0x1 FB REG=7 value=0x7*/ {7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 66;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR64_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexb ;xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(66)=0 OUTREG=XED_REG_RAX -> FB REXB=0 value=0x0 FB RM=0 value=0x0*/ {0,0},
|
||
|
/*h(67)=1 OUTREG=XED_REG_RCX -> FB REXB=0 value=0x0 FB RM=1 value=0x1*/ {0,1},
|
||
|
/*h(68)=2 OUTREG=XED_REG_RDX -> FB REXB=0 value=0x0 FB RM=2 value=0x2*/ {0,2},
|
||
|
/*h(69)=3 OUTREG=XED_REG_RBX -> FB REXB=0 value=0x0 FB RM=3 value=0x3*/ {0,3},
|
||
|
/*h(70)=4 OUTREG=XED_REG_RSP -> FB REXB=0 value=0x0 FB RM=4 value=0x4*/ {0,4},
|
||
|
/*h(71)=5 OUTREG=XED_REG_RBP -> FB REXB=0 value=0x0 FB RM=5 value=0x5*/ {0,5},
|
||
|
/*h(72)=6 OUTREG=XED_REG_RSI -> FB REXB=0 value=0x0 FB RM=6 value=0x6*/ {0,6},
|
||
|
/*h(73)=7 OUTREG=XED_REG_RDI -> FB REXB=0 value=0x0 FB RM=7 value=0x7*/ {0,7},
|
||
|
/*h(74)=8 OUTREG=XED_REG_R8 -> FB REXB=1 value=0x1 FB RM=0 value=0x0*/ {1,0},
|
||
|
/*h(75)=9 OUTREG=XED_REG_R9 -> FB REXB=1 value=0x1 FB RM=1 value=0x1*/ {1,1},
|
||
|
/*h(76)=10 OUTREG=XED_REG_R10 -> FB REXB=1 value=0x1 FB RM=2 value=0x2*/ {1,2},
|
||
|
/*h(77)=11 OUTREG=XED_REG_R11 -> FB REXB=1 value=0x1 FB RM=3 value=0x3*/ {1,3},
|
||
|
/*h(78)=12 OUTREG=XED_REG_R12 -> FB REXB=1 value=0x1 FB RM=4 value=0x4*/ {1,4},
|
||
|
/*h(79)=13 OUTREG=XED_REG_R13 -> FB REXB=1 value=0x1 FB RM=5 value=0x5*/ {1,5},
|
||
|
/*h(80)=14 OUTREG=XED_REG_R14 -> FB REXB=1 value=0x1 FB RM=6 value=0x6*/ {1,6},
|
||
|
/*h(81)=15 OUTREG=XED_REG_R15 -> FB REXB=1 value=0x1 FB RM=7 value=0x7*/ {1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 66;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR64_SB(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexb ;xed_int8_t srm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(66)=0 OUTREG=XED_REG_RAX -> FB REXB=0 value=0x0 FB SRM=0 value=0x0*/ {0,0},
|
||
|
/*h(67)=1 OUTREG=XED_REG_RCX -> FB REXB=0 value=0x0 FB SRM=1 value=0x1*/ {0,1},
|
||
|
/*h(68)=2 OUTREG=XED_REG_RDX -> FB REXB=0 value=0x0 FB SRM=2 value=0x2*/ {0,2},
|
||
|
/*h(69)=3 OUTREG=XED_REG_RBX -> FB REXB=0 value=0x0 FB SRM=3 value=0x3*/ {0,3},
|
||
|
/*h(70)=4 OUTREG=XED_REG_RSP -> FB REXB=0 value=0x0 FB SRM=4 value=0x4*/ {0,4},
|
||
|
/*h(71)=5 OUTREG=XED_REG_RBP -> FB REXB=0 value=0x0 FB SRM=5 value=0x5*/ {0,5},
|
||
|
/*h(72)=6 OUTREG=XED_REG_RSI -> FB REXB=0 value=0x0 FB SRM=6 value=0x6*/ {0,6},
|
||
|
/*h(73)=7 OUTREG=XED_REG_RDI -> FB REXB=0 value=0x0 FB SRM=7 value=0x7*/ {0,7},
|
||
|
/*h(74)=8 OUTREG=XED_REG_R8 -> FB REXB=1 value=0x1 FB SRM=0 value=0x0*/ {1,0},
|
||
|
/*h(75)=9 OUTREG=XED_REG_R9 -> FB REXB=1 value=0x1 FB SRM=1 value=0x1*/ {1,1},
|
||
|
/*h(76)=10 OUTREG=XED_REG_R10 -> FB REXB=1 value=0x1 FB SRM=2 value=0x2*/ {1,2},
|
||
|
/*h(77)=11 OUTREG=XED_REG_R11 -> FB REXB=1 value=0x1 FB SRM=3 value=0x3*/ {1,3},
|
||
|
/*h(78)=12 OUTREG=XED_REG_R12 -> FB REXB=1 value=0x1 FB SRM=4 value=0x4*/ {1,4},
|
||
|
/*h(79)=13 OUTREG=XED_REG_R13 -> FB REXB=1 value=0x1 FB SRM=5 value=0x5*/ {1,5},
|
||
|
/*h(80)=14 OUTREG=XED_REG_R14 -> FB REXB=1 value=0x1 FB SRM=6 value=0x6*/ {1,6},
|
||
|
/*h(81)=15 OUTREG=XED_REG_R15 -> FB REXB=1 value=0x1 FB SRM=7 value=0x7*/ {1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 66;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_srm(xes,lu_table[hidx].srm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR64_X(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t rexx ;xed_int8_t sibindex;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(0)=0 OUTREG=XED_REG_INVALID -> FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0, 0,4},
|
||
|
/*h(81)=1 OUTREG=XED_REG_R15 -> FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {81, 1,7},
|
||
|
/*h(76)=2 OUTREG=XED_REG_R10 -> FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {76, 1,2},
|
||
|
/*h(71)=3 OUTREG=XED_REG_RBP -> FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {71, 0,5},
|
||
|
/*h(66)=4 OUTREG=XED_REG_RAX -> FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {66, 0,0},
|
||
|
/*h(77)=5 OUTREG=XED_REG_R11 -> FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {77, 1,3},
|
||
|
/*h(72)=6 OUTREG=XED_REG_RSI -> FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {72, 0,6},
|
||
|
/*h(67)=7 OUTREG=XED_REG_RCX -> FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {67, 0,1},
|
||
|
/*h(78)=8 OUTREG=XED_REG_R12 -> FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {78, 1,4},
|
||
|
/*h(73)=9 OUTREG=XED_REG_RDI -> FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {73, 0,7},
|
||
|
/*h(68)=10 OUTREG=XED_REG_RDX -> FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {68, 0,2},
|
||
|
/*h(79)=11 OUTREG=XED_REG_R13 -> FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {79, 1,5},
|
||
|
/*h(74)=12 OUTREG=XED_REG_R8 -> FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {74, 1,0},
|
||
|
/*h(69)=13 OUTREG=XED_REG_RBX -> FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {69, 0,3},
|
||
|
/*h(80)=14 OUTREG=XED_REG_R14 -> FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {80, 1,6},
|
||
|
/*h(75)=15 OUTREG=XED_REG_R9 -> FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {75, 1,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = ((3*key % 89) % 16);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_rexx(xes,lu_table[hidx].rexx);
|
||
|
xed3_operand_set_sibindex(xes,lu_table[hidx].sibindex);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(50)=0 OUTREG=XED_REG_EAX -> FB REXR=0 value=0x0 FB REG=0 value=0x0*/ {0,0},
|
||
|
/*h(51)=1 OUTREG=XED_REG_ECX -> FB REXR=0 value=0x0 FB REG=1 value=0x1*/ {1,0},
|
||
|
/*h(52)=2 OUTREG=XED_REG_EDX -> FB REXR=0 value=0x0 FB REG=2 value=0x2*/ {2,0},
|
||
|
/*h(53)=3 OUTREG=XED_REG_EBX -> FB REXR=0 value=0x0 FB REG=3 value=0x3*/ {3,0},
|
||
|
/*h(54)=4 OUTREG=XED_REG_ESP -> FB REXR=0 value=0x0 FB REG=4 value=0x4*/ {4,0},
|
||
|
/*h(55)=5 OUTREG=XED_REG_EBP -> FB REXR=0 value=0x0 FB REG=5 value=0x5*/ {5,0},
|
||
|
/*h(56)=6 OUTREG=XED_REG_ESI -> FB REXR=0 value=0x0 FB REG=6 value=0x6*/ {6,0},
|
||
|
/*h(57)=7 OUTREG=XED_REG_EDI -> FB REXR=0 value=0x0 FB REG=7 value=0x7*/ {7,0},
|
||
|
/*h(58)=8 OUTREG=XED_REG_R8D -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {0,1},
|
||
|
/*h(59)=9 OUTREG=XED_REG_R9D -> FB REXR=1 value=0x1 FB REG=1 value=0x1*/ {1,1},
|
||
|
/*h(60)=10 OUTREG=XED_REG_R10D -> FB REXR=1 value=0x1 FB REG=2 value=0x2*/ {2,1},
|
||
|
/*h(61)=11 OUTREG=XED_REG_R11D -> FB REXR=1 value=0x1 FB REG=3 value=0x3*/ {3,1},
|
||
|
/*h(62)=12 OUTREG=XED_REG_R12D -> FB REXR=1 value=0x1 FB REG=4 value=0x4*/ {4,1},
|
||
|
/*h(63)=13 OUTREG=XED_REG_R13D -> FB REXR=1 value=0x1 FB REG=5 value=0x5*/ {5,1},
|
||
|
/*h(64)=14 OUTREG=XED_REG_R14D -> FB REXR=1 value=0x1 FB REG=6 value=0x6*/ {6,1},
|
||
|
/*h(65)=15 OUTREG=XED_REG_R15D -> FB REXR=1 value=0x1 FB REG=7 value=0x7*/ {7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 50;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexb ;xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(50)=0 OUTREG=XED_REG_EAX -> FB REXB=0 value=0x0 FB RM=0 value=0x0*/ {0,0},
|
||
|
/*h(51)=1 OUTREG=XED_REG_ECX -> FB REXB=0 value=0x0 FB RM=1 value=0x1*/ {0,1},
|
||
|
/*h(52)=2 OUTREG=XED_REG_EDX -> FB REXB=0 value=0x0 FB RM=2 value=0x2*/ {0,2},
|
||
|
/*h(53)=3 OUTREG=XED_REG_EBX -> FB REXB=0 value=0x0 FB RM=3 value=0x3*/ {0,3},
|
||
|
/*h(54)=4 OUTREG=XED_REG_ESP -> FB REXB=0 value=0x0 FB RM=4 value=0x4*/ {0,4},
|
||
|
/*h(55)=5 OUTREG=XED_REG_EBP -> FB REXB=0 value=0x0 FB RM=5 value=0x5*/ {0,5},
|
||
|
/*h(56)=6 OUTREG=XED_REG_ESI -> FB REXB=0 value=0x0 FB RM=6 value=0x6*/ {0,6},
|
||
|
/*h(57)=7 OUTREG=XED_REG_EDI -> FB REXB=0 value=0x0 FB RM=7 value=0x7*/ {0,7},
|
||
|
/*h(58)=8 OUTREG=XED_REG_R8D -> FB REXB=1 value=0x1 FB RM=0 value=0x0*/ {1,0},
|
||
|
/*h(59)=9 OUTREG=XED_REG_R9D -> FB REXB=1 value=0x1 FB RM=1 value=0x1*/ {1,1},
|
||
|
/*h(60)=10 OUTREG=XED_REG_R10D -> FB REXB=1 value=0x1 FB RM=2 value=0x2*/ {1,2},
|
||
|
/*h(61)=11 OUTREG=XED_REG_R11D -> FB REXB=1 value=0x1 FB RM=3 value=0x3*/ {1,3},
|
||
|
/*h(62)=12 OUTREG=XED_REG_R12D -> FB REXB=1 value=0x1 FB RM=4 value=0x4*/ {1,4},
|
||
|
/*h(63)=13 OUTREG=XED_REG_R13D -> FB REXB=1 value=0x1 FB RM=5 value=0x5*/ {1,5},
|
||
|
/*h(64)=14 OUTREG=XED_REG_R14D -> FB REXB=1 value=0x1 FB RM=6 value=0x6*/ {1,6},
|
||
|
/*h(65)=15 OUTREG=XED_REG_R15D -> FB REXB=1 value=0x1 FB RM=7 value=0x7*/ {1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 50;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32_SB(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexb ;xed_int8_t srm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(50)=0 OUTREG=XED_REG_EAX -> FB REXB=0 value=0x0 FB SRM=0 value=0x0*/ {0,0},
|
||
|
/*h(51)=1 OUTREG=XED_REG_ECX -> FB REXB=0 value=0x0 FB SRM=1 value=0x1*/ {0,1},
|
||
|
/*h(52)=2 OUTREG=XED_REG_EDX -> FB REXB=0 value=0x0 FB SRM=2 value=0x2*/ {0,2},
|
||
|
/*h(53)=3 OUTREG=XED_REG_EBX -> FB REXB=0 value=0x0 FB SRM=3 value=0x3*/ {0,3},
|
||
|
/*h(54)=4 OUTREG=XED_REG_ESP -> FB REXB=0 value=0x0 FB SRM=4 value=0x4*/ {0,4},
|
||
|
/*h(55)=5 OUTREG=XED_REG_EBP -> FB REXB=0 value=0x0 FB SRM=5 value=0x5*/ {0,5},
|
||
|
/*h(56)=6 OUTREG=XED_REG_ESI -> FB REXB=0 value=0x0 FB SRM=6 value=0x6*/ {0,6},
|
||
|
/*h(57)=7 OUTREG=XED_REG_EDI -> FB REXB=0 value=0x0 FB SRM=7 value=0x7*/ {0,7},
|
||
|
/*h(58)=8 OUTREG=XED_REG_R8D -> FB REXB=1 value=0x1 FB SRM=0 value=0x0*/ {1,0},
|
||
|
/*h(59)=9 OUTREG=XED_REG_R9D -> FB REXB=1 value=0x1 FB SRM=1 value=0x1*/ {1,1},
|
||
|
/*h(60)=10 OUTREG=XED_REG_R10D -> FB REXB=1 value=0x1 FB SRM=2 value=0x2*/ {1,2},
|
||
|
/*h(61)=11 OUTREG=XED_REG_R11D -> FB REXB=1 value=0x1 FB SRM=3 value=0x3*/ {1,3},
|
||
|
/*h(62)=12 OUTREG=XED_REG_R12D -> FB REXB=1 value=0x1 FB SRM=4 value=0x4*/ {1,4},
|
||
|
/*h(63)=13 OUTREG=XED_REG_R13D -> FB REXB=1 value=0x1 FB SRM=5 value=0x5*/ {1,5},
|
||
|
/*h(64)=14 OUTREG=XED_REG_R14D -> FB REXB=1 value=0x1 FB SRM=6 value=0x6*/ {1,6},
|
||
|
/*h(65)=15 OUTREG=XED_REG_R15D -> FB REXB=1 value=0x1 FB SRM=7 value=0x7*/ {1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 50;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_srm(xes,lu_table[hidx].srm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR32_X(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t rexx ;xed_int8_t sibindex;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[21] = {
|
||
|
/*h(0)=0 OUTREG=XED_REG_INVALID -> FB REXX=0 value=0x0 FB SIBINDEX=4 value=0x4*/ {0, 0,4},
|
||
|
/*h(60)=1 OUTREG=XED_REG_R10D -> FB REXX=1 value=0x1 FB SIBINDEX=2 value=0x2*/ {60, 1,2},
|
||
|
/*h(52)=2 OUTREG=XED_REG_EDX -> FB REXX=0 value=0x0 FB SIBINDEX=2 value=0x2*/ {52, 0,2},
|
||
|
/*h(65)=3 OUTREG=XED_REG_R15D -> FB REXX=1 value=0x1 FB SIBINDEX=7 value=0x7*/ {65, 1,7},
|
||
|
/*h(57)=4 OUTREG=XED_REG_EDI -> FB REXX=0 value=0x0 FB SIBINDEX=7 value=0x7*/ {57, 0,7},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(62)=6 OUTREG=XED_REG_R12D -> FB REXX=1 value=0x1 FB SIBINDEX=4 value=0x4*/ {62, 1,4},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(59)=9 OUTREG=XED_REG_R9D -> FB REXX=1 value=0x1 FB SIBINDEX=1 value=0x1*/ {59, 1,1},
|
||
|
/*h(51)=10 OUTREG=XED_REG_ECX -> FB REXX=0 value=0x0 FB SIBINDEX=1 value=0x1*/ {51, 0,1},
|
||
|
/*h(64)=11 OUTREG=XED_REG_R14D -> FB REXX=1 value=0x1 FB SIBINDEX=6 value=0x6*/ {64, 1,6},
|
||
|
/*h(56)=12 OUTREG=XED_REG_ESI -> FB REXX=0 value=0x0 FB SIBINDEX=6 value=0x6*/ {56, 0,6},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(61)=14 OUTREG=XED_REG_R11D -> FB REXX=1 value=0x1 FB SIBINDEX=3 value=0x3*/ {61, 1,3},
|
||
|
/*h(53)=15 OUTREG=XED_REG_EBX -> FB REXX=0 value=0x0 FB SIBINDEX=3 value=0x3*/ {53, 0,3},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(58)=17 OUTREG=XED_REG_R8D -> FB REXX=1 value=0x1 FB SIBINDEX=0 value=0x0*/ {58, 1,0},
|
||
|
/*h(50)=18 OUTREG=XED_REG_EAX -> FB REXX=0 value=0x0 FB SIBINDEX=0 value=0x0*/ {50, 0,0},
|
||
|
/*h(63)=19 OUTREG=XED_REG_R13D -> FB REXX=1 value=0x1 FB SIBINDEX=5 value=0x5*/ {63, 1,5},
|
||
|
/*h(55)=20 OUTREG=XED_REG_EBP -> FB REXX=0 value=0x0 FB SIBINDEX=5 value=0x5*/ {55, 0,5}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 21ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_rexx(xes,lu_table[hidx].rexx);
|
||
|
xed3_operand_set_sibindex(xes,lu_table[hidx].sibindex);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR16_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(34)=0 OUTREG=XED_REG_AX -> FB REXR=0 value=0x0 FB REG=0 value=0x0*/ {0,0},
|
||
|
/*h(35)=1 OUTREG=XED_REG_CX -> FB REXR=0 value=0x0 FB REG=1 value=0x1*/ {1,0},
|
||
|
/*h(36)=2 OUTREG=XED_REG_DX -> FB REXR=0 value=0x0 FB REG=2 value=0x2*/ {2,0},
|
||
|
/*h(37)=3 OUTREG=XED_REG_BX -> FB REXR=0 value=0x0 FB REG=3 value=0x3*/ {3,0},
|
||
|
/*h(38)=4 OUTREG=XED_REG_SP -> FB REXR=0 value=0x0 FB REG=4 value=0x4*/ {4,0},
|
||
|
/*h(39)=5 OUTREG=XED_REG_BP -> FB REXR=0 value=0x0 FB REG=5 value=0x5*/ {5,0},
|
||
|
/*h(40)=6 OUTREG=XED_REG_SI -> FB REXR=0 value=0x0 FB REG=6 value=0x6*/ {6,0},
|
||
|
/*h(41)=7 OUTREG=XED_REG_DI -> FB REXR=0 value=0x0 FB REG=7 value=0x7*/ {7,0},
|
||
|
/*h(42)=8 OUTREG=XED_REG_R8W -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {0,1},
|
||
|
/*h(43)=9 OUTREG=XED_REG_R9W -> FB REXR=1 value=0x1 FB REG=1 value=0x1*/ {1,1},
|
||
|
/*h(44)=10 OUTREG=XED_REG_R10W -> FB REXR=1 value=0x1 FB REG=2 value=0x2*/ {2,1},
|
||
|
/*h(45)=11 OUTREG=XED_REG_R11W -> FB REXR=1 value=0x1 FB REG=3 value=0x3*/ {3,1},
|
||
|
/*h(46)=12 OUTREG=XED_REG_R12W -> FB REXR=1 value=0x1 FB REG=4 value=0x4*/ {4,1},
|
||
|
/*h(47)=13 OUTREG=XED_REG_R13W -> FB REXR=1 value=0x1 FB REG=5 value=0x5*/ {5,1},
|
||
|
/*h(48)=14 OUTREG=XED_REG_R14W -> FB REXR=1 value=0x1 FB REG=6 value=0x6*/ {6,1},
|
||
|
/*h(49)=15 OUTREG=XED_REG_R15W -> FB REXR=1 value=0x1 FB REG=7 value=0x7*/ {7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 34;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR16_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexb ;xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(34)=0 OUTREG=XED_REG_AX -> FB REXB=0 value=0x0 FB RM=0 value=0x0*/ {0,0},
|
||
|
/*h(35)=1 OUTREG=XED_REG_CX -> FB REXB=0 value=0x0 FB RM=1 value=0x1*/ {0,1},
|
||
|
/*h(36)=2 OUTREG=XED_REG_DX -> FB REXB=0 value=0x0 FB RM=2 value=0x2*/ {0,2},
|
||
|
/*h(37)=3 OUTREG=XED_REG_BX -> FB REXB=0 value=0x0 FB RM=3 value=0x3*/ {0,3},
|
||
|
/*h(38)=4 OUTREG=XED_REG_SP -> FB REXB=0 value=0x0 FB RM=4 value=0x4*/ {0,4},
|
||
|
/*h(39)=5 OUTREG=XED_REG_BP -> FB REXB=0 value=0x0 FB RM=5 value=0x5*/ {0,5},
|
||
|
/*h(40)=6 OUTREG=XED_REG_SI -> FB REXB=0 value=0x0 FB RM=6 value=0x6*/ {0,6},
|
||
|
/*h(41)=7 OUTREG=XED_REG_DI -> FB REXB=0 value=0x0 FB RM=7 value=0x7*/ {0,7},
|
||
|
/*h(42)=8 OUTREG=XED_REG_R8W -> FB REXB=1 value=0x1 FB RM=0 value=0x0*/ {1,0},
|
||
|
/*h(43)=9 OUTREG=XED_REG_R9W -> FB REXB=1 value=0x1 FB RM=1 value=0x1*/ {1,1},
|
||
|
/*h(44)=10 OUTREG=XED_REG_R10W -> FB REXB=1 value=0x1 FB RM=2 value=0x2*/ {1,2},
|
||
|
/*h(45)=11 OUTREG=XED_REG_R11W -> FB REXB=1 value=0x1 FB RM=3 value=0x3*/ {1,3},
|
||
|
/*h(46)=12 OUTREG=XED_REG_R12W -> FB REXB=1 value=0x1 FB RM=4 value=0x4*/ {1,4},
|
||
|
/*h(47)=13 OUTREG=XED_REG_R13W -> FB REXB=1 value=0x1 FB RM=5 value=0x5*/ {1,5},
|
||
|
/*h(48)=14 OUTREG=XED_REG_R14W -> FB REXB=1 value=0x1 FB RM=6 value=0x6*/ {1,6},
|
||
|
/*h(49)=15 OUTREG=XED_REG_R15W -> FB REXB=1 value=0x1 FB RM=7 value=0x7*/ {1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 34;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_GPR16_SB(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rexb ;xed_int8_t srm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(34)=0 OUTREG=XED_REG_AX -> FB REXB=0 value=0x0 FB SRM=0 value=0x0*/ {0,0},
|
||
|
/*h(35)=1 OUTREG=XED_REG_CX -> FB REXB=0 value=0x0 FB SRM=1 value=0x1*/ {0,1},
|
||
|
/*h(36)=2 OUTREG=XED_REG_DX -> FB REXB=0 value=0x0 FB SRM=2 value=0x2*/ {0,2},
|
||
|
/*h(37)=3 OUTREG=XED_REG_BX -> FB REXB=0 value=0x0 FB SRM=3 value=0x3*/ {0,3},
|
||
|
/*h(38)=4 OUTREG=XED_REG_SP -> FB REXB=0 value=0x0 FB SRM=4 value=0x4*/ {0,4},
|
||
|
/*h(39)=5 OUTREG=XED_REG_BP -> FB REXB=0 value=0x0 FB SRM=5 value=0x5*/ {0,5},
|
||
|
/*h(40)=6 OUTREG=XED_REG_SI -> FB REXB=0 value=0x0 FB SRM=6 value=0x6*/ {0,6},
|
||
|
/*h(41)=7 OUTREG=XED_REG_DI -> FB REXB=0 value=0x0 FB SRM=7 value=0x7*/ {0,7},
|
||
|
/*h(42)=8 OUTREG=XED_REG_R8W -> FB REXB=1 value=0x1 FB SRM=0 value=0x0*/ {1,0},
|
||
|
/*h(43)=9 OUTREG=XED_REG_R9W -> FB REXB=1 value=0x1 FB SRM=1 value=0x1*/ {1,1},
|
||
|
/*h(44)=10 OUTREG=XED_REG_R10W -> FB REXB=1 value=0x1 FB SRM=2 value=0x2*/ {1,2},
|
||
|
/*h(45)=11 OUTREG=XED_REG_R11W -> FB REXB=1 value=0x1 FB SRM=3 value=0x3*/ {1,3},
|
||
|
/*h(46)=12 OUTREG=XED_REG_R12W -> FB REXB=1 value=0x1 FB SRM=4 value=0x4*/ {1,4},
|
||
|
/*h(47)=13 OUTREG=XED_REG_R13W -> FB REXB=1 value=0x1 FB SRM=5 value=0x5*/ {1,5},
|
||
|
/*h(48)=14 OUTREG=XED_REG_R14W -> FB REXB=1 value=0x1 FB SRM=6 value=0x6*/ {1,6},
|
||
|
/*h(49)=15 OUTREG=XED_REG_R15W -> FB REXB=1 value=0x1 FB SRM=7 value=0x7*/ {1,7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 34;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_srm(xes,lu_table[hidx].srm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_CR_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[10] = {
|
||
|
/*h(102)=0 OUTREG=XED_REG_ERROR -> FB REXR=0 value=0x0 FB REG=1 value=0x1*/ {102, 1,0},
|
||
|
/*h(10)=1 OUTREG=XED_REG_CR3 -> FB REXR=0 value=0x0 FB REG=3 value=0x3*/ {10, 3,0},
|
||
|
/*h(15)=2 OUTREG=XED_REG_CR8 -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {15, 0,1},
|
||
|
/*h(7)=3 OUTREG=XED_REG_CR0 -> FB REXR=0 value=0x0 FB REG=0 value=0x0*/ {7, 0,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(9)=5 OUTREG=XED_REG_CR2 -> FB REXR=0 value=0x0 FB REG=2 value=0x2*/ {9, 2,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(11)=7 OUTREG=XED_REG_CR4 -> FB REXR=0 value=0x0 FB REG=4 value=0x4*/ {11, 4,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*empty slot1 */ {0,0,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 10ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_CR_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t rexb ;xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[10] = {
|
||
|
/*h(102)=0 OUTREG=XED_REG_ERROR -> FB REXB=0 value=0x0 FB RM=1 value=0x1*/ {102, 0,1},
|
||
|
/*h(10)=1 OUTREG=XED_REG_CR3 -> FB REXB=0 value=0x0 FB RM=3 value=0x3*/ {10, 0,3},
|
||
|
/*h(15)=2 OUTREG=XED_REG_CR8 -> FB REXB=1 value=0x1 FB RM=0 value=0x0*/ {15, 1,0},
|
||
|
/*h(7)=3 OUTREG=XED_REG_CR0 -> FB REXB=0 value=0x0 FB RM=0 value=0x0*/ {7, 0,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(9)=5 OUTREG=XED_REG_CR2 -> FB REXB=0 value=0x0 FB RM=2 value=0x2*/ {9, 0,2},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(11)=7 OUTREG=XED_REG_CR4 -> FB REXB=0 value=0x0 FB RM=4 value=0x4*/ {11, 0,4},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*empty slot1 */ {0,0,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 10ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_rexb(xes,lu_table[hidx].rexb);
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_DR_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[15] = {
|
||
|
/*h(102)=0 OUTREG=XED_REG_ERROR -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {102, 0,1},
|
||
|
/*h(26)=1 OUTREG=XED_REG_DR3 -> FB REXR=0 value=0x0 FB REG=3 value=0x3*/ {26, 3,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(23)=3 OUTREG=XED_REG_DR0 -> FB REXR=0 value=0x0 FB REG=0 value=0x0*/ {23, 0,0},
|
||
|
/*h(28)=4 OUTREG=XED_REG_DR5 -> FB REXR=0 value=0x0 FB REG=5 value=0x5*/ {28, 5,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(25)=6 OUTREG=XED_REG_DR2 -> FB REXR=0 value=0x0 FB REG=2 value=0x2*/ {25, 2,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(30)=8 OUTREG=XED_REG_DR7 -> FB REXR=0 value=0x0 FB REG=7 value=0x7*/ {30, 7,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(27)=10 OUTREG=XED_REG_DR4 -> FB REXR=0 value=0x0 FB REG=4 value=0x4*/ {27, 4,0},
|
||
|
/*empty slot1 */ {0,0,0},
|
||
|
/*h(24)=12 OUTREG=XED_REG_DR1 -> FB REXR=0 value=0x0 FB REG=1 value=0x1*/ {24, 1,0},
|
||
|
/*h(29)=13 OUTREG=XED_REG_DR6 -> FB REXR=0 value=0x0 FB REG=6 value=0x6*/ {29, 6,0},
|
||
|
/*empty slot1 */ {0,0,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 15ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_X87(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[8] = {
|
||
|
/*h(179)=0 OUTREG=XED_REG_ST0 -> FB RM=0 value=0x0*/ {0},
|
||
|
/*h(180)=1 OUTREG=XED_REG_ST1 -> FB RM=1 value=0x1*/ {1},
|
||
|
/*h(181)=2 OUTREG=XED_REG_ST2 -> FB RM=2 value=0x2*/ {2},
|
||
|
/*h(182)=3 OUTREG=XED_REG_ST3 -> FB RM=3 value=0x3*/ {3},
|
||
|
/*h(183)=4 OUTREG=XED_REG_ST4 -> FB RM=4 value=0x4*/ {4},
|
||
|
/*h(184)=5 OUTREG=XED_REG_ST5 -> FB RM=5 value=0x5*/ {5},
|
||
|
/*h(185)=6 OUTREG=XED_REG_ST6 -> FB RM=6 value=0x6*/ {6},
|
||
|
/*h(186)=7 OUTREG=XED_REG_ST7 -> FB RM=7 value=0x7*/ {7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 179;
|
||
|
if(hidx <= 7) {
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_SEG(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t reg;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[12] = {
|
||
|
/*h(102)=0 OUTREG=XED_REG_ERROR -> FB REG=6 value=0x6*/ {102, 6},
|
||
|
/*h(149)=1 OUTREG=XED_REG_CS -> FB REG=1 value=0x1*/ {149, 1},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*h(151)=3 OUTREG=XED_REG_DS -> FB REG=3 value=0x3*/ {151, 3},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*h(148)=5 OUTREG=XED_REG_ES -> FB REG=0 value=0x0*/ {148, 0},
|
||
|
/*h(153)=6 OUTREG=XED_REG_GS -> FB REG=5 value=0x5*/ {153, 5},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*h(150)=8 OUTREG=XED_REG_SS -> FB REG=2 value=0x2*/ {150, 2},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*empty slot1 */ {0,0},
|
||
|
/*h(152)=11 OUTREG=XED_REG_FS -> FB REG=4 value=0x4*/ {152, 4}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 12ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_SEG_MOV(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t reg;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(102)=0 OUTREG=XED_REG_ERROR -> FB REG=6 value=0x6*/ {102, 6},
|
||
|
/*h(151)=1 OUTREG=XED_REG_DS -> FB REG=3 value=0x3*/ {151, 3},
|
||
|
/*h(148)=2 OUTREG=XED_REG_ES -> FB REG=0 value=0x0*/ {148, 0},
|
||
|
/*h(153)=3 OUTREG=XED_REG_GS -> FB REG=5 value=0x5*/ {153, 5},
|
||
|
/*h(150)=4 OUTREG=XED_REG_SS -> FB REG=2 value=0x2*/ {150, 2},
|
||
|
/*h(152)=5 OUTREG=XED_REG_FS -> FB REG=4 value=0x4*/ {152, 4}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 6ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_DSEG(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 MODE=0 -> ntluf*/ {xed_encode_ntluf_FINAL_DSEG_NOT64},
|
||
|
/*h(1)=1 MODE=1 -> ntluf*/ {xed_encode_ntluf_FINAL_DSEG_NOT64},
|
||
|
/*h(2)=2 MODE=2 -> ntluf*/ {xed_encode_ntluf_FINAL_DSEG_MODE64}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_DSEG_NOT64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t seg_ovd ;xed_int8_t using_default_segment0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(148)=0 OUTREG=XED_REG_ES -> FB SEG_OVD=3 value=0x3 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {3,0},
|
||
|
/*h(149)=1 OUTREG=XED_REG_CS -> FB SEG_OVD=1 value=0x1 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {1,0},
|
||
|
/*h(150)=2 OUTREG=XED_REG_SS -> FB SEG_OVD=6 value=0x6 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {6,0},
|
||
|
/*h(151)=3 OUTREG=XED_REG_DS -> FB SEG_OVD=0 value=0x0 FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {0,1},
|
||
|
/*h(152)=4 OUTREG=XED_REG_FS -> FB SEG_OVD=4 value=0x4 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {4,0},
|
||
|
/*h(153)=5 OUTREG=XED_REG_GS -> FB SEG_OVD=5 value=0x5 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {5,0}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 148;
|
||
|
if(hidx <= 5) {
|
||
|
xed3_operand_set_seg_ovd(xes,lu_table[hidx].seg_ovd);
|
||
|
xed3_operand_set_using_default_segment0(xes,lu_table[hidx].using_default_segment0);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_DSEG_MODE64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t seg_ovd ;xed_int8_t using_default_segment0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 OUTREG=XED_REG_INVALID -> FB SEG_OVD=0 value=0x0 FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {0, 0,1},
|
||
|
/*h(153)=1 OUTREG=XED_REG_GS -> FB SEG_OVD=5 value=0x5 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {153, 5,0},
|
||
|
/*h(152)=2 OUTREG=XED_REG_FS -> FB SEG_OVD=4 value=0x4 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {152, 4,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_seg_ovd(xes,lu_table[hidx].seg_ovd);
|
||
|
xed3_operand_set_using_default_segment0(xes,lu_table[hidx].using_default_segment0);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_DSEG1(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 MODE=0 -> ntluf*/ {xed_encode_ntluf_FINAL_DSEG1_NOT64},
|
||
|
/*h(1)=1 MODE=1 -> ntluf*/ {xed_encode_ntluf_FINAL_DSEG1_NOT64},
|
||
|
/*h(2)=2 MODE=2 -> ntluf*/ {xed_encode_ntluf_FINAL_DSEG1_MODE64}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_DSEG1_NOT64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t seg_ovd ;xed_int8_t using_default_segment1;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(148)=0 OUTREG=XED_REG_ES -> FB SEG_OVD=3 value=0x3 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {3,0},
|
||
|
/*h(149)=1 OUTREG=XED_REG_CS -> FB SEG_OVD=1 value=0x1 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {1,0},
|
||
|
/*h(150)=2 OUTREG=XED_REG_SS -> FB SEG_OVD=6 value=0x6 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {6,0},
|
||
|
/*h(151)=3 OUTREG=XED_REG_DS -> FB SEG_OVD=0 value=0x0 FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {0,1},
|
||
|
/*h(152)=4 OUTREG=XED_REG_FS -> FB SEG_OVD=4 value=0x4 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {4,0},
|
||
|
/*h(153)=5 OUTREG=XED_REG_GS -> FB SEG_OVD=5 value=0x5 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {5,0}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 148;
|
||
|
if(hidx <= 5) {
|
||
|
xed3_operand_set_seg_ovd(xes,lu_table[hidx].seg_ovd);
|
||
|
xed3_operand_set_using_default_segment1(xes,lu_table[hidx].using_default_segment1);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_DSEG1_MODE64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t seg_ovd ;xed_int8_t using_default_segment1;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 OUTREG=XED_REG_INVALID -> FB SEG_OVD=0 value=0x0 FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {0, 0,1},
|
||
|
/*h(153)=1 OUTREG=XED_REG_GS -> FB SEG_OVD=5 value=0x5 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {153, 5,0},
|
||
|
/*h(152)=2 OUTREG=XED_REG_FS -> FB SEG_OVD=4 value=0x4 FB USING_DEFAULT_SEGMENT1=0 value=0x0*/ {152, 4,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_seg_ovd(xes,lu_table[hidx].seg_ovd);
|
||
|
xed3_operand_set_using_default_segment1(xes,lu_table[hidx].using_default_segment1);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_ESEG(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t using_default_segment0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(2)=0 OUTREG=XED_REG_INVALID MODE=2 -> FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {2, 1},
|
||
|
/*h(593)=1 OUTREG=XED_REG_ES MODE=1 -> FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {593, 1},
|
||
|
/*h(592)=2 OUTREG=XED_REG_ES MODE=0 -> FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {592, 1}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_using_default_segment0(xes,lu_table[hidx].using_default_segment0);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_ESEG1(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t using_default_segment1;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(2)=0 OUTREG=XED_REG_INVALID MODE=2 -> FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {2, 1},
|
||
|
/*h(593)=1 OUTREG=XED_REG_ES MODE=1 -> FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {593, 1},
|
||
|
/*h(592)=2 OUTREG=XED_REG_ES MODE=0 -> FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {592, 1}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_using_default_segment1(xes,lu_table[hidx].using_default_segment1);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_SSEG1(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t using_default_segment1;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(2)=0 OUTREG=XED_REG_INVALID MODE=2 -> FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {2, 1},
|
||
|
/*h(601)=1 OUTREG=XED_REG_SS MODE=1 -> FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {601, 1},
|
||
|
/*h(600)=2 OUTREG=XED_REG_SS MODE=0 -> FB USING_DEFAULT_SEGMENT1=1 value=0x1*/ {600, 1}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_using_default_segment1(xes,lu_table[hidx].using_default_segment1);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_SSEG0(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t using_default_segment0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(2)=0 OUTREG=XED_REG_INVALID MODE=2 -> FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {2, 1},
|
||
|
/*h(601)=1 OUTREG=XED_REG_SS MODE=1 -> FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {601, 1},
|
||
|
/*h(600)=2 OUTREG=XED_REG_SS MODE=0 -> FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {600, 1}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_using_default_segment0(xes,lu_table[hidx].using_default_segment0);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_SSEG(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 MODE=0 -> ntluf*/ {xed_encode_ntluf_FINAL_SSEG_NOT64},
|
||
|
/*h(1)=1 MODE=1 -> ntluf*/ {xed_encode_ntluf_FINAL_SSEG_NOT64},
|
||
|
/*h(2)=2 MODE=2 -> ntluf*/ {xed_encode_ntluf_FINAL_SSEG_MODE64}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_SSEG_NOT64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t seg_ovd ;xed_int8_t using_default_segment0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[6] = {
|
||
|
/*h(148)=0 OUTREG=XED_REG_ES -> FB SEG_OVD=3 value=0x3 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {3,0},
|
||
|
/*h(149)=1 OUTREG=XED_REG_CS -> FB SEG_OVD=1 value=0x1 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {1,0},
|
||
|
/*h(150)=2 OUTREG=XED_REG_SS -> FB SEG_OVD=0 value=0x0 FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {0,1},
|
||
|
/*h(151)=3 OUTREG=XED_REG_DS -> FB SEG_OVD=2 value=0x2 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {2,0},
|
||
|
/*h(152)=4 OUTREG=XED_REG_FS -> FB SEG_OVD=4 value=0x4 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {4,0},
|
||
|
/*h(153)=5 OUTREG=XED_REG_GS -> FB SEG_OVD=5 value=0x5 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {5,0}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 148;
|
||
|
if(hidx <= 5) {
|
||
|
xed3_operand_set_seg_ovd(xes,lu_table[hidx].seg_ovd);
|
||
|
xed3_operand_set_using_default_segment0(xes,lu_table[hidx].using_default_segment0);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_FINAL_SSEG_MODE64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct {xed_uint32_t key; xed_int8_t seg_ovd ;xed_int8_t using_default_segment0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 OUTREG=XED_REG_INVALID -> FB SEG_OVD=0 value=0x0 FB USING_DEFAULT_SEGMENT0=1 value=0x1*/ {0, 0,1},
|
||
|
/*h(153)=1 OUTREG=XED_REG_GS -> FB SEG_OVD=5 value=0x5 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {153, 5,0},
|
||
|
/*h(152)=2 OUTREG=XED_REG_FS -> FB SEG_OVD=4 value=0x4 FB USING_DEFAULT_SEGMENT0=0 value=0x0*/ {152, 4,0}
|
||
|
};
|
||
|
xed_union64_t t, u;
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = (t.u64 = 2654435769 * key, u.u64 = t.s.lo32 * 3ULL, u.s.hi32);
|
||
|
if(lu_table[hidx].key == key) {
|
||
|
xed3_operand_set_seg_ovd(xes,lu_table[hidx].seg_ovd);
|
||
|
xed3_operand_set_using_default_segment0(xes,lu_table[hidx].using_default_segment0);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_XMM_R(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 MODE=0 -> ntluf*/ {xed_encode_ntluf_XMM_R_32},
|
||
|
/*h(1)=1 MODE=1 -> ntluf*/ {xed_encode_ntluf_XMM_R_32},
|
||
|
/*h(2)=2 MODE=2 -> ntluf*/ {xed_encode_ntluf_XMM_R_64}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_XMM_R_32(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t reg;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[8] = {
|
||
|
/*h(188)=0 OUTREG=XED_REG_XMM0 -> FB REG=0 value=0x0*/ {0},
|
||
|
/*h(189)=1 OUTREG=XED_REG_XMM1 -> FB REG=1 value=0x1*/ {1},
|
||
|
/*h(190)=2 OUTREG=XED_REG_XMM2 -> FB REG=2 value=0x2*/ {2},
|
||
|
/*h(191)=3 OUTREG=XED_REG_XMM3 -> FB REG=3 value=0x3*/ {3},
|
||
|
/*h(192)=4 OUTREG=XED_REG_XMM4 -> FB REG=4 value=0x4*/ {4},
|
||
|
/*h(193)=5 OUTREG=XED_REG_XMM5 -> FB REG=5 value=0x5*/ {5},
|
||
|
/*h(194)=6 OUTREG=XED_REG_XMM6 -> FB REG=6 value=0x6*/ {6},
|
||
|
/*h(195)=7 OUTREG=XED_REG_XMM7 -> FB REG=7 value=0x7*/ {7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 188;
|
||
|
if(hidx <= 7) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_XMM_R_64(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t reg ;xed_int8_t rexr;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[16] = {
|
||
|
/*h(188)=0 OUTREG=XED_REG_XMM0 -> FB REXR=0 value=0x0 FB REG=0 value=0x0*/ {0,0},
|
||
|
/*h(189)=1 OUTREG=XED_REG_XMM1 -> FB REXR=0 value=0x0 FB REG=1 value=0x1*/ {1,0},
|
||
|
/*h(190)=2 OUTREG=XED_REG_XMM2 -> FB REXR=0 value=0x0 FB REG=2 value=0x2*/ {2,0},
|
||
|
/*h(191)=3 OUTREG=XED_REG_XMM3 -> FB REXR=0 value=0x0 FB REG=3 value=0x3*/ {3,0},
|
||
|
/*h(192)=4 OUTREG=XED_REG_XMM4 -> FB REXR=0 value=0x0 FB REG=4 value=0x4*/ {4,0},
|
||
|
/*h(193)=5 OUTREG=XED_REG_XMM5 -> FB REXR=0 value=0x0 FB REG=5 value=0x5*/ {5,0},
|
||
|
/*h(194)=6 OUTREG=XED_REG_XMM6 -> FB REXR=0 value=0x0 FB REG=6 value=0x6*/ {6,0},
|
||
|
/*h(195)=7 OUTREG=XED_REG_XMM7 -> FB REXR=0 value=0x0 FB REG=7 value=0x7*/ {7,0},
|
||
|
/*h(196)=8 OUTREG=XED_REG_XMM8 -> FB REXR=1 value=0x1 FB REG=0 value=0x0*/ {0,1},
|
||
|
/*h(197)=9 OUTREG=XED_REG_XMM9 -> FB REXR=1 value=0x1 FB REG=1 value=0x1*/ {1,1},
|
||
|
/*h(198)=10 OUTREG=XED_REG_XMM10 -> FB REXR=1 value=0x1 FB REG=2 value=0x2*/ {2,1},
|
||
|
/*h(199)=11 OUTREG=XED_REG_XMM11 -> FB REXR=1 value=0x1 FB REG=3 value=0x3*/ {3,1},
|
||
|
/*h(200)=12 OUTREG=XED_REG_XMM12 -> FB REXR=1 value=0x1 FB REG=4 value=0x4*/ {4,1},
|
||
|
/*h(201)=13 OUTREG=XED_REG_XMM13 -> FB REXR=1 value=0x1 FB REG=5 value=0x5*/ {5,1},
|
||
|
/*h(202)=14 OUTREG=XED_REG_XMM14 -> FB REXR=1 value=0x1 FB REG=6 value=0x6*/ {6,1},
|
||
|
/*h(203)=15 OUTREG=XED_REG_XMM15 -> FB REXR=1 value=0x1 FB REG=7 value=0x7*/ {7,1}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 188;
|
||
|
if(hidx <= 15) {
|
||
|
xed3_operand_set_reg(xes,lu_table[hidx].reg);
|
||
|
xed3_operand_set_rexr(xes,lu_table[hidx].rexr);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_XMM_B(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_ntluf_func_ptr_t ntlufptr0;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[3] = {
|
||
|
/*h(0)=0 MODE=0 -> ntluf*/ {xed_encode_ntluf_XMM_B_32},
|
||
|
/*h(1)=1 MODE=1 -> ntluf*/ {xed_encode_ntluf_XMM_B_32},
|
||
|
/*h(2)=2 MODE=2 -> ntluf*/ {xed_encode_ntluf_XMM_B_64}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed_uint64_t res = 1;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_MODE(xes);
|
||
|
hidx = key - 0;
|
||
|
if(hidx <= 2) {
|
||
|
if(lu_table[hidx].ntlufptr0 != 0) res=(*lu_table[hidx].ntlufptr0)(xes,arg_reg);
|
||
|
return res;
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
xed_uint32_t xed_encode_ntluf_XMM_B_32(xed_encoder_request_t* xes, xed_reg_enum_t arg_reg)
|
||
|
{
|
||
|
typedef struct { xed_int8_t rm;} lu_entry_t;
|
||
|
static const lu_entry_t lu_table[8] = {
|
||
|
/*h(188)=0 OUTREG=XED_REG_XMM0 -> FB RM=0 value=0x0*/ {0},
|
||
|
/*h(189)=1 OUTREG=XED_REG_XMM1 -> FB RM=1 value=0x1*/ {1},
|
||
|
/*h(190)=2 OUTREG=XED_REG_XMM2 -> FB RM=2 value=0x2*/ {2},
|
||
|
/*h(191)=3 OUTREG=XED_REG_XMM3 -> FB RM=3 value=0x3*/ {3},
|
||
|
/*h(192)=4 OUTREG=XED_REG_XMM4 -> FB RM=4 value=0x4*/ {4},
|
||
|
/*h(193)=5 OUTREG=XED_REG_XMM5 -> FB RM=5 value=0x5*/ {5},
|
||
|
/*h(194)=6 OUTREG=XED_REG_XMM6 -> FB RM=6 value=0x6*/ {6},
|
||
|
/*h(195)=7 OUTREG=XED_REG_XMM7 -> FB RM=7 value=0x7*/ {7}
|
||
|
};
|
||
|
xed_uint64_t key = 0;
|
||
|
xed_uint64_t hidx = 0;
|
||
|
xed3_operand_set_outreg(xes,arg_reg);
|
||
|
key = xed_enc_lu_OUTREG(xes);
|
||
|
hidx = key - 188;
|
||
|
if(hidx <= 7) {
|
||
|
xed3_operand_set_rm(xes,lu_table[hidx].rm);
|
||
|
return 1;
|
||
|
}
|
||
|
else{
|
||
|
return 0;
|
||
|
}
|
||
|
}
|