test: add Makefile target for elfx32
[nasm.git] / x86 / regs.dat
blob723f6a44792bc6a5ee6f5424fd856745c2a67bd1
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:
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.
32 ## --------------------------------------------------------------------------
35 # List of registers and their classes; classes are defined in nasm.h
37 # The columns are:
39 # register name, assembler class, disassembler class(es), x86 register number[, token flag]
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.
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.
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
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
102 # Control registers
103 cr0-15 REG_CREG creg 0
105 # Debug registers
106 dr0-15 REG_DREG dreg 0
108 # Test registers
109 tr0-7 REG_TREG treg 0
111 # Floating-point registers
112 st0 FPU0 fpureg 0
113 st1-7 FPUREG fpureg 1
115 # MMX registers
116 mm0-7 MMXREG mmxreg 0
118 # SSE registers
119 xmm0 XMM0 xmmreg 0
120 xmm1-15 XMM_L16 xmmreg 1
121 xmm16-31 XMMREG xmmreg 16
123 # AVX registers
124 ymm0 YMM0 ymmreg 0
125 ymm1-15 YMM_L16 ymmreg 1
126 ymm16-31 YMMREG ymmreg 16
128 # AVX512 registers
129 zmm0 ZMM0 zmmreg 0
130 zmm1-15 ZMM_L16 zmmreg 1
131 zmm16-31 ZMMREG zmmreg 16
133 # Opmask registers
134 k0 OPMASK0 opmaskreg 0
135 k1-7 OPMASKREG opmaskreg 1 TFLAG_BRC_OPT
137 # Bounds registers
138 bnd0-3 BNDREG bndreg 0