| |
| |
| ###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 |
| |
| |