blob: 11b6ba7d7a9eecbe8b7782eb825c008f933d78dd [file] [log] [blame]
###FILE: ./datafiles/xed-operand-width.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-operand-width.txt
# the default xtype can be overridden in each operand using a ":" followed by an explicit xtype
##
## the width defaults to bytes. But it can be bits if it has a "bits" suffix
##
#
# default
#oc2-code XTYPE width16 width32 width64 (if only one width is shown, it is for all widths)
#
INVALID INVALID 0
#
# 3 strange things:
#
asz int 2 4 8 # varies with the effective address width
ssz int 2 4 8 # varies with the stack address width
pseudo struct 0 # these are for unusual registers
pseudox87 struct 0 # these are for unusual registers
#
#
#
#1 i1 1 # FIXME: this is not used...
a16 i16 4 # bound
a32 i32 8 # bound
b u8 1
d i32 4
#
i8 i8 1
u8 u8 1
i16 i16 2
u16 u16 2
i32 i32 4
u32 u32 4
i64 i64 8
u64 u64 8
f16 f16 2 # IVB converts
f32 f32 4
f64 f64 8
#
dq i32 16
#
xub u8 16
xuw u16 16
xud u32 16
xuq u64 16
x128 u128 16
#
xb i8 16
xw i16 16
xd i32 16
xq i64 16
#
#
mb i8 8
mw i16 8
md i32 8
mq i64 8
#
m64int i64 8
m64real f64 8
mem108 struct 108
mem14 struct 14
mem16 struct 2
mem16int i16 2
mem28 struct 28
mem32int i32 4
mem32real f32 4
mem80dec b80 10
mem80real f80 10
f80 f80 10 # for X87 registers:
mem94 struct 94
mfpxenv struct 512
mxsave struct 576
mprefetch i64 64 # made up width for prefetches
p struct 4 6 6
p2 struct 4 6 10
pd f64 16
ps f32 16
pi i32 8
q i64 8
s struct 6 6 10
s64 struct 10
sd f64 8
si i32 4
ss f32 4
v int 2 4 8
y int 4 4 8
w i16 2
z int 2 4 4
spw8 int 16 32 0 # varies (64b invalid) STACK POINTER WIDTH
spw int 2 4 8 # varies STACK POINTER WIDTH
spw5 int 10 20 40 # varies (IRET approx) STACK POINTER WIDTH
spw3 int 6 12 24 # varies (IRET approx) STACK POINTER WIDTH
spw2 int 4 8 16 # varies (FAR call/ret approx) STACK POINTER WIDTH
i1 int 1bits
i2 int 2bits
i3 int 3bits
i4 int 4bits
i5 int 5bits
i6 int 6bits
i7 int 7bits
i8 int 8bits
var var 0 # relies on NELEM * ELEMENT_SIZE to get the number of bits.
bnd32 u32 12 # MPX 32b BNDLDX/BNDSTX memop 3x4B
bnd64 u64 24 # MPX 32b BNDLDX/BNDSTX memop 3x8B
###FILE: ./datafiles/avx/avx-operand-width.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
#
#code XTYPE width16 width32 width64 (if only one width is presented, it is for all widths)
#
qq i32 32
yub u8 32
yuw u16 32
yud u32 32
yuq u64 32
y128 u128 32
yb i8 32
yw i16 32
yd i32 32
yq i64 32
yps f32 32
ypd f64 32
###FILE: ./datafiles/avx512f/avx512-operand-widths.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
#
#code XTYPE width16 width32 width64 (if only one width is presented, it is for all widths)
#
vv var 0 # relies on nelem * elem_size
zv var 0 # relies on nelem * elem_size
wrd u16 16bits
mskw i1 64bits # FIXME: bad name
zmskw i1 512bits
zf32 f32 512bits
zf64 f64 512bits
zb i8 512bits
zw i16 512bits
zd i32 512bits
zq i64 512bits
zub u8 512bits
zuw u16 512bits
zud u32 512bits
zuq u64 512bits
# alternative names...
zi8 i8 512bits
zi16 i16 512bits
zi32 i32 512bits
zi64 i64 512bits
zu8 u8 512bits
zu16 u16 512bits
zu32 u32 512bits
zu64 u64 512bits
zu128 u128 512bits