General push for x86-64 support, dubbed 0.99.00.
[platform/upstream/nasm.git] / regs.dat
1 # $Id$
2 #
3 # List of registers and their classes; classes are defined in nasm.h
4 #
5 # The columns are: register name, assembler class, disassembler class, regval
6 # A * means the line should be repeated for each value from 0 to 7
7 #
8
9 # Legacy Registers
10 # 000-007 = 8-bit Registers
11 # 010-017 = 16-bit Registers
12 # 020-027 = 32-bit Registers
13
14 # System Registers
15 # 100-107 = Segment Registers
16 # 110-127 = Control Registers
17 # 130-147 = Debug Registers
18 # 150-167 = Test Registers
19
20 # Legacy Extended Registers
21 # 200-207 = FPU Registers
22 # 210-217 = MMX Registers
23 # 220-227 = XMM Registers (XMM0-XMM7)
24
25 # x64 Extended Registers
26 # 400-407 = 8-bit Extensions (SIL/DIL/BPL/SPL)
27 # 410-417 = 8-bit Registers (R8B-R15B)
28 # 420-427 = 16-bit Registers (R8W-R15W)
29 # 430-437 = 32-bit Registers (R8D-R15D)
30 # 440-457 = 64-bit Registers (RAX-RDI+R8-R15)
31 # 460-467 = XMM Extended Registers (XMM8-XMM15)
32
33 # Special Registers
34 # 0500 = RIP (for RIP-relative Addressing)
35
36
37 # General-purpose registers
38 al      REG_AL          reg8    0000
39 ah      REG8            reg8    0004
40 ax      REG_AX          reg16   0010
41 eax     REG_EAX         reg32   0020
42 rax     REG_RAX         reg64   0440
43 bl      REG8            reg8    0003
44 bh      REG8            reg8    0007
45 bx      REG16           reg16   0013
46 ebx     REG32           reg32   0023
47 rbx     REG64           reg64   0443
48 cl      REG_CL          reg8    0001
49 ch      REG8            reg8    0005
50 cx      REG_CX          reg16   0011
51 ecx     REG_ECX         reg32   0021
52 rcx     REG_RCX         reg64   0441
53 dl      REG_DL          reg8    0002
54 dh      REG8            reg8    0006
55 dx      REG_DX          reg16   0012
56 edx     REG_EDX         reg32   0022
57 rdx     REG_RDX         reg64   0442
58 spl     REG8            reg8    0404
59 sp      REG16           reg16   0014
60 esp     REG32           reg32   0024
61 rsp     REG64           reg64   0444
62 bpl     REG8            reg8    0405
63 bp      REG16           reg16   0015
64 ebp     REG32           reg32   0025
65 rbp     REG64           reg64   0445
66 sil     REG8            reg8    0406
67 si      REG16           reg16   0016
68 esi     REG32           reg32   0026
69 rsi     REG64           reg64   0446
70 dil     REG8            reg8    0407
71 di      REG16           reg16   0017
72 edi     REG32           reg32   0027
73 rdi     REG64           reg64   0447
74 r8b     REG8            reg8    0410
75 r8w     REG16           reg16   0420
76 r8d     REG32           reg32   0430
77 r8      REG64           reg64   0450
78 r9b     REG8            reg8    0411
79 r9w     REG16           reg16   0421
80 r9d     REG32           reg32   0431
81 r9      REG64           reg64   0451
82 r10b    REG8            reg8    0412
83 r10w    REG16           reg16   0422
84 r10d    REG32           reg32   0432
85 r10     REG64           reg64   0452
86 r11b    REG8            reg8    0413
87 r11w    REG16           reg16   0423
88 r11d    REG32           reg32   0433
89 r11     REG64           reg64   0453
90 r12b    REG8            reg8    0414
91 r12w    REG16           reg16   0424
92 r12d    REG32           reg32   0434
93 r12     REG64           reg64   0454
94 r13b    REG8            reg8    0415
95 r13w    REG16           reg16   0425
96 r13d    REG32           reg32   0435
97 r13     REG64           reg64   0455
98 r14b    REG8            reg8    0416
99 r14w    REG16           reg16   0426
100 r14d    REG32           reg32   0436
101 r14     REG64           reg64   0456
102 r15b    REG8            reg8    0417
103 r15w    REG16           reg16   0427
104 r15d    REG32           reg32   0437
105 r15     REG64           reg64   0457
106
107 # Segment registers
108 cs      REG_CS          sreg    0101
109 ds      REG_DESS        sreg    0103
110 es      REG_DESS        sreg    0100
111 ss      REG_DESS        sreg    0102
112 fs      REG_FSGS        sreg    0104
113 gs      REG_FSGS        sreg    0105
114 segr6   REG_SEG67       sreg    0106
115 segr7   REG_SEG67       sreg    0107
116
117 # Control registers
118 cr0     REG_CREG        creg    0110
119 cr1     REG_CREG        creg    0111
120 cr2     REG_CREG        creg    0112
121 cr3     REG_CREG        creg    0113
122 cr4     REG_CREG        creg    0114
123 cr5     REG_CREG        creg    0115
124 cr6     REG_CREG        creg    0116
125 cr7     REG_CREG        creg    0127
126 cr8     REG_C8REG       creg    0120
127 cr9     REG_CREG        creg    0121
128 cr10    REG_CREG        creg    0122
129 cr11    REG_CREG        creg    0123
130 cr12    REG_CREG        creg    0124
131 cr13    REG_CREG        creg    0125
132 cr14    REG_CREG        creg    0126
133 cr15    REG_CREG        creg    0127
134
135 # Debug registers
136 dr0     REG_DREG        dreg    0130
137 dr1     REG_DREG        dreg    0131
138 dr2     REG_DREG        dreg    0132
139 dr3     REG_DREG        dreg    0133
140 dr4     REG_DREG        dreg    0134
141 dr5     REG_DREG        dreg    0135
142 dr6     REG_DREG        dreg    0136
143 dr7     REG_DREG        dreg    0137
144 dr8     REG_DREG        dreg    0140
145 dr9     REG_DREG        dreg    0141
146 dr10    REG_DREG        dreg    0142
147 dr11    REG_DREG        dreg    0143
148 dr12    REG_DREG        dreg    0144
149 dr13    REG_DREG        dreg    0145
150 dr14    REG_DREG        dreg    0146
151 dr15    REG_DREG        dreg    0147
152
153 # Test registers
154 tr0     REG_TREG        treg    0150
155 tr1     REG_TREG        treg    0151
156 tr2     REG_TREG        treg    0152
157 tr3     REG_TREG        treg    0153
158 tr4     REG_TREG        treg    0154
159 tr5     REG_TREG        treg    0155
160 tr6     REG_TREG        treg    0156
161 tr7     REG_TREG        treg    0157
162
163 # Floating-point registers
164 st0     FPU0            fpureg  0200
165 st1     FPUREG          fpureg  0201
166 st2     FPUREG          fpureg  0202
167 st3     FPUREG          fpureg  0203
168 st4     FPUREG          fpureg  0204
169 st5     FPUREG          fpureg  0205
170 st6     FPUREG          fpureg  0206
171 st7     FPUREG          fpureg  0207
172
173 # MMX registers
174 mm0     MMXREG          mmxreg  0220
175 mm1     MMXREG          mmxreg  0221
176 mm2     MMXREG          mmxreg  0222
177 mm3     MMXREG          mmxreg  0223
178 mm4     MMXREG          mmxreg  0224
179 mm5     MMXREG          mmxreg  0225
180 mm6     MMXREG          mmxreg  0226
181 mm7     MMXREG          mmxreg  0227
182
183
184 # SSE registers
185 xmm0    XMMREG          xmmreg  0240
186 xmm1    XMMREG          xmmreg  0241
187 xmm2    XMMREG          xmmreg  0242
188 xmm3    XMMREG          xmmreg  0243
189 xmm4    XMMREG          xmmreg  0244
190 xmm5    XMMREG          xmmreg  0245
191 xmm6    XMMREG          xmmreg  0246
192 xmm7    XMMREG          xmmreg  0247
193 xmm8    XMMREG          xmmreg  0460
194 xmm9    XMMREG          xmmreg  0461
195 xmm10   XMMREG          xmmreg  0462
196 xmm11   XMMREG          xmmreg  0463
197 xmm12   XMMREG          xmmreg  0464
198 xmm13   XMMREG          xmmreg  0465
199 xmm14   XMMREG          xmmreg  0466
200 xmm15   XMMREG          xmmreg  0467
201
202 # Special registers
203 rip     REG_RIP         ripreg  0500