...

Text file src/golang.org/x/arch/x86/x86avxgen/testdata/xedpath/all-widths.txt

Documentation: golang.org/x/arch/x86/x86avxgen/testdata/xedpath

     1
     2
     3###FILE: ./datafiles/xed-operand-width.txt
     4
     5#BEGIN_LEGAL
     6#
     7#Copyright (c) 2016 Intel Corporation
     8#
     9#  Licensed under the Apache License, Version 2.0 (the "License");
    10#  you may not use this file except in compliance with the License.
    11#  You may obtain a copy of the License at
    12#
    13#      http://www.apache.org/licenses/LICENSE-2.0
    14#
    15#  Unless required by applicable law or agreed to in writing, software
    16#  distributed under the License is distributed on an "AS IS" BASIS,
    17#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18#  See the License for the specific language governing permissions and
    19#  limitations under the License.
    20#
    21#END_LEGAL
    22# @file xed-operand-width.txt
    23
    24# the default xtype can be overridden in each operand using a ":" followed by an explicit xtype
    25##
    26## the width defaults to bytes. But it can be bits if it has a "bits" suffix
    27##
    28#
    29#            default
    30#oc2-code    XTYPE     width16 width32 width64 (if only one width is shown, it is for all widths)
    31#
    32INVALID     INVALID   0
    33#
    34#  3 strange things:
    35#
    36asz         int       2 4 8  # varies with the effective address width
    37ssz         int       2 4 8  # varies with the stack address width
    38pseudo      struct    0      # these are for unusual registers
    39pseudox87   struct    0      # these are for unusual registers
    40#
    41#
    42#
    43#1          i1        1 # FIXME: this is not used...
    44a16         i16       4  # bound
    45a32         i32       8  # bound
    46b           u8        1
    47d           i32       4
    48#
    49i8          i8        1
    50u8          u8        1
    51i16         i16       2
    52u16         u16       2
    53i32         i32       4
    54u32         u32       4
    55i64         i64       8
    56u64         u64       8
    57f16         f16       2  # IVB converts
    58f32         f32       4
    59f64         f64       8
    60#
    61dq          i32      16
    62#
    63xub        u8        16
    64xuw        u16       16
    65xud        u32       16
    66xuq        u64       16
    67x128       u128      16
    68#
    69xb          i8       16
    70xw          i16      16
    71xd          i32      16
    72xq          i64      16
    73#
    74#
    75mb          i8        8
    76mw          i16       8
    77md          i32       8
    78mq          i64       8
    79#
    80m64int      i64       8
    81m64real     f64       8
    82mem108      struct  108
    83mem14       struct   14
    84mem16       struct    2
    85mem16int    i16       2
    86mem28       struct   28
    87mem32int    i32       4
    88mem32real   f32       4
    89mem80dec    b80      10
    90mem80real   f80      10
    91f80         f80      10 # for X87 registers:
    92mem94       struct   94
    93mfpxenv     struct  512
    94mxsave      struct  576
    95mprefetch   i64      64 # made up width for prefetches
    96p           struct    4    6   6
    97p2          struct    4    6  10
    98pd          f64      16
    99ps          f32      16
   100pi          i32       8
   101q           i64       8
   102s           struct    6    6  10
   103s64         struct   10
   104sd          f64       8
   105si          i32       4
   106ss          f32       4
   107v           int       2    4   8
   108y           int       4    4   8
   109w           i16       2
   110z           int       2    4   4
   111spw8        int      16   32   0  # varies (64b invalid)         STACK POINTER WIDTH
   112spw         int       2    4   8  # varies                       STACK POINTER WIDTH
   113spw5        int      10   20  40  # varies (IRET approx)         STACK POINTER WIDTH
   114spw3        int       6   12  24  # varies (IRET approx)         STACK POINTER WIDTH
   115spw2        int       4    8  16  # varies (FAR call/ret approx) STACK POINTER WIDTH
   116i1          int   1bits
   117i2          int   2bits
   118i3          int   3bits
   119i4          int   4bits
   120i5          int   5bits
   121i6          int   6bits
   122i7          int   7bits
   123i8          int   8bits
   124var         var      0  # relies on NELEM * ELEMENT_SIZE to get the number of bits.
   125bnd32       u32     12  # MPX 32b BNDLDX/BNDSTX memop 3x4B
   126bnd64       u64     24  # MPX 32b BNDLDX/BNDSTX memop 3x8B
   127
   128
   129###FILE: ./datafiles/avx/avx-operand-width.txt
   130
   131#BEGIN_LEGAL
   132#
   133#Copyright (c) 2016 Intel Corporation
   134#
   135#  Licensed under the Apache License, Version 2.0 (the "License");
   136#  you may not use this file except in compliance with the License.
   137#  You may obtain a copy of the License at
   138#
   139#      http://www.apache.org/licenses/LICENSE-2.0
   140#
   141#  Unless required by applicable law or agreed to in writing, software
   142#  distributed under the License is distributed on an "AS IS" BASIS,
   143#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   144#  See the License for the specific language governing permissions and
   145#  limitations under the License.
   146#
   147#END_LEGAL
   148#
   149#code      XTYPE     width16 width32 width64 (if only one width is presented, it is for all widths)
   150#
   151qq          i32     32
   152yub         u8      32
   153yuw         u16     32
   154yud         u32     32
   155yuq         u64     32
   156y128        u128    32
   157
   158yb          i8      32
   159yw          i16     32
   160yd          i32     32
   161yq          i64     32
   162
   163yps         f32     32
   164ypd         f64     32
   165
   166
   167
   168
   169###FILE: ./datafiles/avx512f/avx512-operand-widths.txt
   170
   171#BEGIN_LEGAL
   172#
   173#Copyright (c) 2016 Intel Corporation
   174#
   175#  Licensed under the Apache License, Version 2.0 (the "License");
   176#  you may not use this file except in compliance with the License.
   177#  You may obtain a copy of the License at
   178#
   179#      http://www.apache.org/licenses/LICENSE-2.0
   180#
   181#  Unless required by applicable law or agreed to in writing, software
   182#  distributed under the License is distributed on an "AS IS" BASIS,
   183#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   184#  See the License for the specific language governing permissions and
   185#  limitations under the License.
   186#
   187#END_LEGAL
   188#
   189#code      XTYPE     width16 width32 width64 (if only one width is presented, it is for all widths)
   190#
   191vv          var      0 # relies on nelem * elem_size
   192zv          var      0 # relies on nelem * elem_size
   193
   194wrd         u16     16bits
   195mskw        i1      64bits # FIXME: bad name
   196
   197zmskw       i1      512bits
   198
   199zf32       f32      512bits
   200zf64       f64      512bits
   201
   202zb         i8       512bits
   203zw         i16      512bits
   204zd         i32      512bits
   205zq         i64      512bits
   206
   207zub         u8       512bits
   208zuw         u16      512bits
   209zud         u32      512bits
   210zuq         u64      512bits
   211
   212# alternative names...
   213zi8         i8       512bits
   214zi16        i16      512bits
   215zi32        i32      512bits
   216zi64        i64      512bits
   217
   218zu8         u8       512bits
   219zu16        u16      512bits
   220zu32        u32      512bits
   221zu64        u64      512bits
   222zu128       u128     512bits
   223
   224

View as plain text