doc: Document --v and duplicate REX prefix fix
[platform/upstream/nasm.git] / regs.dat
1 ## --------------------------------------------------------------------------
2 ##   
3 ##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
4 ##   See the file AUTHORS included with the NASM distribution for
5 ##   the specific copyright holders.
6 ##
7 ##   Redistribution and use in source and binary forms, with or without
8 ##   modification, are permitted provided that the following
9 ##   conditions are met:
10 ##
11 ##   * Redistributions of source code must retain the above copyright
12 ##     notice, this list of conditions and the following disclaimer.
13 ##   * Redistributions in binary form must reproduce the above
14 ##     copyright notice, this list of conditions and the following
15 ##     disclaimer in the documentation and/or other materials provided
16 ##     with the distribution.
17 ##     
18 ##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 ##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 ##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 ##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 ##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 ##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 ##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 ##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 ##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 ##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 ##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 ##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 ##
32 ## --------------------------------------------------------------------------
33
34 #
35 # List of registers and their classes; classes are defined in nasm.h
36 #
37 # The columns are:
38 #
39 # register name, assembler class, disassembler class(es), x86 register number[, token flag]
40 #
41 # If the register name ends in two numbers separated by a dash, then it is
42 # repeated as many times as indicated, and the register number is
43 # updated with it.
44 #
45 # If 'token flag' is present, this value will be assigned to tokflag field in
46 # 'struct tokendata tokendata[]' table. Token flag can be used for specifying
47 # special usage of corresponding register. E.g. opmask registers can be either
48 # enclosed by curly braces or standalone operand depending on the usage.
49 #
50
51 # General-purpose registers
52 al      REG_AL          reg8,reg8_rex   0
53 ah      REG_HIGH        reg8            4
54 ax      REG_AX          reg16           0
55 eax     REG_EAX         reg32           0
56 rax     REG_RAX         reg64           0
57 bl      REG8NA          reg8,reg8_rex   3
58 bh      REG_HIGH        reg8            7
59 bx      REG16NA         reg16           3
60 ebx     REG32NA         reg32           3
61 rbx     REG64NA         reg64           3
62 cl      REG_CL          reg8,reg8_rex   1
63 ch      REG_HIGH        reg8            5
64 cx      REG_CX          reg16           1
65 ecx     REG_ECX         reg32           1
66 rcx     REG_RCX         reg64           1
67 dl      REG_DL          reg8,reg8_rex   2
68 dh      REG_HIGH        reg8            6
69 dx      REG_DX          reg16           2
70 edx     REG_EDX         reg32           2
71 rdx     REG_RDX         reg64           2
72 spl     REG8NA          reg8_rex        4
73 sp      REG16NA         reg16           4
74 esp     REG32NA         reg32           4
75 rsp     REG64NA         reg64           4
76 bpl     REG8NA          reg8_rex        5
77 bp      REG16NA         reg16           5
78 ebp     REG32NA         reg32           5
79 rbp     REG64NA         reg64           5
80 sil     REG8NA          reg8_rex        6
81 si      REG16NA         reg16           6
82 esi     REG32NA         reg32           6
83 rsi     REG64NA         reg64           6
84 dil     REG8NA          reg8_rex        7
85 di      REG16NA         reg16           7
86 edi     REG32NA         reg32           7
87 rdi     REG64NA         reg64           7
88 r8-15b  REG8NA          reg8_rex        8
89 r8-15w  REG16NA         reg16           8
90 r8-15d  REG32NA         reg32           8
91 r8-15   REG64NA         reg64           8
92
93 # Segment registers
94 es      REG_ES          sreg            0
95 cs      REG_CS          sreg            1
96 ss      REG_SS          sreg            2
97 ds      REG_DS          sreg            3
98 fs      REG_FS          sreg            4
99 gs      REG_GS          sreg            5
100 segr6-7 REG_SEG67       sreg            6
101
102 # Control registers
103 cr0-15  REG_CREG        creg            0
104
105 # Debug registers
106 dr0-15  REG_DREG        dreg            0
107
108 # Test registers
109 tr0-7   REG_TREG        treg            0
110
111 # Floating-point registers
112 st0     FPU0            fpureg          0
113 st1-7   FPUREG          fpureg          1
114
115 # MMX registers
116 mm0-7   MMXREG          mmxreg          0
117
118 # SSE registers
119 xmm0    XMM0            xmmreg          0
120 xmm1-15 XMM_L16         xmmreg          1
121 xmm16-31        XMMREG          xmmreg          16
122
123 # AVX registers
124 ymm0    YMM0            ymmreg          0
125 ymm1-15 YMM_L16         ymmreg          1
126 ymm16-31        YMMREG          ymmreg          16
127
128 # AVX512 registers
129 zmm0    ZMM0            zmmreg          0
130 zmm1-15 ZMM_L16         zmmreg          1
131 zmm16-31        ZMMREG          zmmreg          16
132
133 # Opmask registers
134 k0      OPMASK0         opmaskreg       0
135 k1-7    OPMASKREG       opmaskreg       1   TFLAG_BRC_OPT
136
137 # Bounds registers
138 bnd0-3  BNDREG          bndreg          0