blob: b2fc642104a633c41b7631e5a5179ec9a966309c [file] [log] [blame]
###FILE: ./datafiles/xed-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
###########################################################################
## file: xed-state-bits.txt
###########################################################################
# These are just shorthand for some conditions or captures.
# Simple macro replacement
#all_modes ALL_MODES=1
not64 MODE!=2
mode64 MODE=2
mode32 MODE=1
mode16 MODE=0
# effective addressing mode
eanot16 EASZ!=1
eamode16 EASZ=1
eamode32 EASZ=2
eamode64 EASZ=3
# stack addressing mode
smode16 SMODE=0
smode32 SMODE=1
smode64 SMODE=2
eosz8 EOSZ=0
eosz16 EOSZ=1
not_eosz16 EOSZ!=1
eosz32 EOSZ=2
eosz64 EOSZ=3
eosznot64 EOSZ!=3
# for OD expansion in graph partitioning FIXME
mod0 MOD=0
mod1 MOD=1
mod2 MOD=2
mod3 MOD=3
rex_reqd REX=1
no_rex REX=0
reset_rex REX=0 REXW=0 REXB=0 REXR=0 REXX=0
rexb_prefix REXB=1
rexx_prefix REXX=1
rexr_prefix REXR=1
# 2013-09-25 FIXME: we were inconsistent. some things use W0/W1, some
# use the more verbose form. We should converge on W0/W1.
#
rexw_prefix REXW=1 SKIP_OSZ=1
norexw_prefix REXW=0 SKIP_OSZ=1
W1 REXW=1 SKIP_OSZ=1
W0 REXW=0 SKIP_OSZ=1
norexb_prefix REXB=0
norexx_prefix REXX=0
norexr_prefix REXR=0
############################################################3333
f2_prefix REP=2 # REPNZ, REPNE
f3_prefix REP=3 # REPZ, REPE
repne REP=2
repe REP=3
norep REP=0
66_prefix OSZ=1
nof3_prefix REP!=3
no66_prefix OSZ=0
not_refining REP=0 # dummy setting for state values 2007-08-06 FIXME
refining_f2 REP=2
refining_f3 REP=3
not_refining_f3 REP!=3 # for pause vs xchg
no_refining_prefix REP=0 OSZ=0 # critical:REP must be first for decoding partitioning
osz_refining_prefix REP=0 OSZ=1
f2_refining_prefix REP=2
f3_refining_prefix REP=3
no67_prefix ASZ=0
67_prefix ASZ=1
lock_prefix LOCK=1
nolock_prefix LOCK=0
default_ds DEFAULT_SEG=0
default_ss DEFAULT_SEG=1
default_es DEFAULT_SEG=2 # for string ops
no_seg_prefix SEG_OVD=0
some_seg_prefix SEG_OVD!=0
cs_prefix SEG_OVD=1
ds_prefix SEG_OVD=2
es_prefix SEG_OVD=3
fs_prefix SEG_OVD=4
gs_prefix SEG_OVD=5
ss_prefix SEG_OVD=6
# default (or not) to 64b width in 64b mode
nrmw DF64=0
df64 DF64=1
# default choice for encoder when there are multiple choices for a
# nonterminal. The ISA is not uniquely determined for encoding so we
# must express preferences for certain forms!
enc ENCODER_PREFERRED=1
# for the legacy prefix encoder, tell it to keep trying rules and not
# return after successfully finding one that applies
no_return NO_RETURN=1
# indicate an encoding or decoding error occurred
error ERROR=XED_ERROR_GENERAL_ERROR
# dummy constraint which always satisfies
true DUMMY=0
###FILE: ./datafiles/amdxop/xop-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
XMAP8 MAP=8
XMAP9 MAP=9
XMAPA MAP=10
XOPV VEXVALID=3
###FILE: ./datafiles/avx/avx-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
VL128 VL=0
VL256 VL=1
VV1 VEXVALID=1
VV0 VEXVALID=0
VMAP0 MAP=0
V0F MAP=1
V0F38 MAP=2
V0F3A MAP=3
VNP VEX_PREFIX=0
V66 VEX_PREFIX=1
VF2 VEX_PREFIX=2
VF3 VEX_PREFIX=3
# No VEX-SPECIFIED-REGISTER
NOVSR VEXDEST3=0b1 VEXDEST210=0b111
EMX_BROADCAST_1TO4_32 BCAST=10 # 128
EMX_BROADCAST_1TO4_64 BCAST=13 # 256
EMX_BROADCAST_1TO8_32 BCAST=3 # 256
EMX_BROADCAST_2TO4_64 BCAST=20 # 256
###FILE: ./datafiles/avxhsw/hsw-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
EMX_BROADCAST_1TO2_64 BCAST=11 # 128
EMX_BROADCAST_1TO8_16 BCAST=14 # 128
EMX_BROADCAST_1TO16_16 BCAST=15 # 256
EMX_BROADCAST_1TO16_8 BCAST=17 # 128
EMX_BROADCAST_1TO32_8 BCAST=18 # 256
###FILE: /home/quasilyte/CODE/intel/xed/datafiles/knc/uisa-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
VL512 VL=2
VLBAD VL=3 # unused VL setting to cause things not to decode.
# KNC EVEX is KVV
#
KVV VEXVALID=4
# No VEX-SPECIFIED-REGISTER
NOEVSR VEXDEST3=0b1 VEXDEST210=0b111 VEXDEST4=0b0
# No VEX-SPECIFIED-REGISTER for GATHERS/SCATTERS -- index reg 5th bit is VEXTDEST4
NO_SPARSE_EVSR VEXDEST3=0b1 VEXDEST210=0b111
# These conflict w/another chip ... so if you ever build a combo
# model you'll have to remove these somehow.
#
EMX_BROADCAST_1TO16_32 BCAST=1 # 512
EMX_BROADCAST_4TO16_32 BCAST=2 # 512
EMX_BROADCAST_1TO8_64 BCAST=5 # 512
EMX_BROADCAST_4TO8_64 BCAST=6 # 512
###FILE: ./datafiles/avx512f/avx512-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
EVV VEXVALID=2
EMX_BROADCAST_1TO16_32 BCAST=1 # 512
EMX_BROADCAST_4TO16_32 BCAST=2 # 512
EMX_BROADCAST_1TO8_64 BCAST=5 # 512
EMX_BROADCAST_4TO8_64 BCAST=6 # 512
EMX_BROADCAST_2TO16_32 BCAST=7 # 512
EMX_BROADCAST_2TO8_64 BCAST=8 # 512
EMX_BROADCAST_8TO16_32 BCAST=9 # 512
EMX_BROADCAST_1TO32_16 BCAST=16 # 512
EMX_BROADCAST_1TO64_8 BCAST=19 # 512
# these do not show up on earlier processors
EMX_BROADCAST_4TO8_32 BCAST=4 # 256
EMX_BROADCAST_2TO4_32 BCAST=12 # 128
EMX_BROADCAST_2TO8_32 BCAST=21 # 256
EMX_BROADCAST_1TO2_32 BCAST=22 # 128
###FILE: ./datafiles/avx512-skx/skx-state-bits.txt
#BEGIN_LEGAL
#
#Copyright (c) 2016 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
EMX_BROADCAST_1TO2_8 BCAST=23
EMX_BROADCAST_1TO4_8 BCAST=24
EMX_BROADCAST_1TO8_8 BCAST=25
EMX_BROADCAST_1TO2_16 BCAST=26
EMX_BROADCAST_1TO4_16 BCAST=27