File: fcml_registers.hpp

package info (click to toggle)
fcml 1.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,536 kB
  • sloc: ansic: 57,510; cpp: 21,835; sh: 4,410; lex: 834; makefile: 508; yacc: 317
file content (288 lines) | stat: -rw-r--r-- 7,947 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
/*
 * FCML - Free Code Manipulation Library.
 * Copyright (C) 2010-2020 Slawomir Wojtasiak
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

/** @file fcml_registers.hpp
 * C++ registers declarations.
 *
 * @copyright Copyright (C) 2010-2020 Slawomir Wojtasiak. All rights reserved.
 * This project is released under the GNU Lesser General Public License.
 *
 * @since 1.1.0
 */

#ifndef FCML_REGISTERS_HPP_
#define FCML_REGISTERS_HPP_

#include "fcml_common.hpp"

namespace fcml {

    extern const Register UNDEF;

    extern const Register AL;
    extern const Register AX;
    extern const Register EAX;
    extern const Register RAX;
    extern const Register MM0;
    extern const Register XMM0;
    extern const Register YMM0;
    extern const Register ZMM0;

    extern const Register CL;
    extern const Register CX;
    extern const Register ECX;
    extern const Register RCX;
    extern const Register MM1;
    extern const Register XMM1;
    extern const Register YMM1;
    extern const Register ZMM1;

    extern const Register DL;
    extern const Register DX;
    extern const Register EDX;
    extern const Register RDX;
    extern const Register MM2;
    extern const Register XMM2;
    extern const Register YMM2;
    extern const Register ZMM2;

    extern const Register BL;
    extern const Register BX;
    extern const Register EBX;
    extern const Register RBX;
    extern const Register MM3;
    extern const Register XMM3;
    extern const Register YMM3;
    extern const Register ZMM3;

    extern const Register AH;
    extern const Register SPL;
    extern const Register SP;
    extern const Register ESP;
    extern const Register RSP;
    extern const Register MM4;
    extern const Register XMM4;
    extern const Register YMM4;
    extern const Register ZMM4;

    extern const Register CH;
    extern const Register BPL;
    extern const Register BP;
    extern const Register EBP;
    extern const Register RBP;
    extern const Register MM5;
    extern const Register XMM5;
    extern const Register YMM5;
    extern const Register ZMM5;

    extern const Register DH;
    extern const Register SIL;
    extern const Register SI;
    extern const Register ESI;
    extern const Register RSI;
    extern const Register MM6;
    extern const Register XMM6;
    extern const Register YMM5;
    extern const Register ZMM5;

    extern const Register BH;
    extern const Register DIL;
    extern const Register DI;
    extern const Register EDI;
    extern const Register RDI;
    extern const Register MM7;
    extern const Register XMM7;
    extern const Register YMM7;
    extern const Register ZMM7;

    extern const Register R8L;
    extern const Register R8W;
    extern const Register R8D;
    extern const Register R8;
    extern const Register XMM8;
    extern const Register YMM8;
    extern const Register ZMM8;

    extern const Register R9L;
    extern const Register R9W;
    extern const Register R9D;
    extern const Register R9;
    extern const Register XMM9;
    extern const Register YMM9;
    extern const Register ZMM9;

    extern const Register R10L;
    extern const Register R10W;
    extern const Register R10D;
    extern const Register R10;
    extern const Register XMM10;
    extern const Register YMM10;
    extern const Register ZMM10;

    extern const Register R11L;
    extern const Register R11W;
    extern const Register R11D;
    extern const Register R11;
    extern const Register XMM11;
    extern const Register YMM10;
    extern const Register ZMM10;

    extern const Register R12L;
    extern const Register R12W;
    extern const Register R12D;
    extern const Register R12;
    extern const Register XMM12;
    extern const Register YMM12;
    extern const Register ZMM12;

    extern const Register R13L;
    extern const Register R13W;
    extern const Register R13D;
    extern const Register R13;
    extern const Register XMM13;
    extern const Register YMM13;
    extern const Register ZMM13;

    extern const Register R14L;
    extern const Register R14W;
    extern const Register R14D;
    extern const Register R14;
    extern const Register XMM14;
    extern const Register YMM14;
    extern const Register ZMM14;

    extern const Register R15L;
    extern const Register R15W;
    extern const Register R15D;
    extern const Register R15;
    extern const Register XMM15;
    extern const Register YMM15;
    extern const Register ZMM15;

    extern const Register XMM16;
    extern const Register YMM16;
    extern const Register ZMM16;

    extern const Register XMM17;
    extern const Register YMM17;
    extern const Register ZMM17;

    extern const Register XMM18;
    extern const Register YMM18;
    extern const Register ZMM18;

    extern const Register XMM19;
    extern const Register YMM19;
    extern const Register ZMM19;

    extern const Register XMM20;
    extern const Register YMM20;
    extern const Register ZMM20;

    extern const Register XMM21;
    extern const Register YMM21;
    extern const Register ZMM21;

    extern const Register XMM22;
    extern const Register YMM22;
    extern const Register ZMM22;

    extern const Register XMM23;
    extern const Register YMM23;
    extern const Register ZMM23;

    extern const Register XMM24;
    extern const Register YMM24;
    extern const Register ZMM24;

    extern const Register XMM25;
    extern const Register YMM25;
    extern const Register ZMM25;

    extern const Register XMM26;
    extern const Register YMM26;
    extern const Register ZMM26;

    extern const Register XMM27;
    extern const Register YMM27;
    extern const Register ZMM27;

    extern const Register XMM28;
    extern const Register YMM28;
    extern const Register ZMM28;

    extern const Register XMM29;
    extern const Register YMM29;
    extern const Register ZMM29;

    extern const Register XMM30;
    extern const Register YMM30;
    extern const Register ZMM30;

    extern const Register XMM31;
    extern const Register YMM31;
    extern const Register ZMM31;

    extern const Register ES;
    extern const Register CS;
    extern const Register SS;
    extern const Register DS;
    extern const Register FS;
    extern const Register GS;

    extern const Register ST0;
    extern const Register ST1;
    extern const Register ST2;
    extern const Register ST3;
    extern const Register ST4;
    extern const Register ST5;
    extern const Register ST6;
    extern const Register ST7;

    extern const Register CR0;
    extern const Register CR2;
    extern const Register CR3;
    extern const Register CR4;
    extern const Register CR8;

    extern const Register DR0;
    extern const Register DR1;
    extern const Register DR2;
    extern const Register DR3;
    extern const Register DR4;
    extern const Register DR5;
    extern const Register DR6;
    extern const Register DR7;

    extern const Register K0;
    extern const Register K1;
    extern const Register K2;
    extern const Register K3;
    extern const Register K4;
    extern const Register K5;
    extern const Register K6;
    extern const Register K7;

    extern const Register IP;
    extern const Register EIP;
    extern const Register RIP;

}

#endif /* FCML_REGISTERS_HPP_ */