Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/trusted/validator/x86/decoder/ncopcode_operand_kind.enum

Issue 625923004: Delete old x86 validator. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: rebase master Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Defines possible kinds of operands an opcode can have.
2 # Each line defines a separate operand kind.
3
4 Unknown_Operand # Unknown operand.
5
6 # Note: The instruction decoder may count on the fact that the A_operand
7 # values are contiguous, in the order specifed.
8
9 # Models a 48-bit far pointer.
10 A_Operand
11
12 # Note: The instruction decoder may count on the fact that the E_operand
13 # values are contiguous, in the order specified.
14
15 # Models a general purpose register or memory operand.
16 # Size is defined by the computed operand size.
17 E_Operand
18
19 # Models an 8-bit general-purpose register or memory
20 # operand. Intel's notation is r/m8.
21 Eb_Operand
22
23 # Models a 16-bit general-purpose register or memory
24 # operand. Intel's notation is r/m16
25 Ew_Operand
26
27 # Models a 32-bit general-purpose register or memory
28 # operand. Intel's notation is r/m32.
29 Ev_Operand
30
31 # Models a 64-bit general-purpose register or memory
32 # operand. Intel's notation is r/m64.
33 Eo_Operand
34
35 # Models a 128-bit double-quadword register or memory
36 # operand.
37 Edq_Operand
38
39 # Note: The instruction decoder may count on the fact that the G_Operand
40 # values are contiguous, in the order specified.
41
42 # General purpose register specified by the ModRm reg field.
43 G_Operand
44
45 # Models an 8-bit general purpose register or memory operand in
46 # in the Modrm byte.
47 # Intel's notation is r8.
48 Gb_Operand
49
50 # Models a 16-bit general purpose register operand.
51 # Intel's notation is r16.
52 Gw_Operand
53
54 # Models a 32-bit general-purpose register operand.
55 # Intel's notation is r32
56 Gv_Operand
57
58 # Models a 64 bit general-purpose register operand.
59 # Intel's notation is r64.
60 Go_Operand
61
62 # Models a 128-bit general purpose register or memory operand.
63 Gdq_Operand
64
65 # Models a G operand which is combined with a segment register to generate a seg ment address
66 # The segment register used is based on the mnemonic name of the instruction.
67 Seg_G_Operand
68
69 # Models registers using the difference in the opcode base, from the opcode
70 # value.
71 G_OpcodeBase
72
73 # Note: The instruction decoder may count on the fact that the I_Operand
74 # values are contiguous, in the order specified.
75
76 # Model an immediate value. Size is defined by the
77 # computed operand size.
78 I_Operand
79
80 # An immediate 8-bit value. Intel's notation is imm8.
81 Ib_Operand
82
83 # An immediate 16-bit value. Intel's notation is imm16.
84 Iw_Operand
85
86 # An immediate 32-bit value. Intel's notation is imm32.
87 Iv_Operand
88
89 # An immediate 64-bit value. Intel's notation is imm64.
90 Io_Operand
91
92 # Model the 2n'd immediate value. Size defined by the OpcodeHasImmed2_x flag.
93 I2_Operand
94
95 # Note: The instruction decoder may count on the fact that the J_Operand
96 # values are contiguous, in the order specified.
97
98 # A relative address to branch to. Size is defined by
99 # the computed operand size.
100 J_Operand
101
102 # A relative address (range 128 before, 127 after) the
103 # end of the instruction. Intel's notation is rel8.
104 Jb_Operand
105
106 # A relative address that is 16 bits long (operand size).
107 # Intel's notation is rel16
108 Jw_Operand
109
110 # A relative address that is 32 bits long (operand size).
111 # Intel's notation is rel32.
112 Jv_Operand
113
114 # Note: The instruction decoder may count on the fact that the M_Operand
115 # values are contiguous, in the order specified.
116
117 # A 16, 32, or 64 bit operand in memory. ???
118 # Intel's notation is m. Size is defined by the
119 # computed operand size.
120 M_Operand
121
122 # A 8-bit operand in memory pointerd to by the DS:(E)Si or
123 # ES:(E)DI registers. In 64-bit mode, it is pointed to
124 # by the RSI or RDI registers. Intel's notation is m8.
125 Mb_Operand
126
127 # A 16-bit operand in memory pointed to by the DS:(E)SI
128 # or ES:(E)DI registers. Intel's notation is m16.
129 Mw_Operand
130
131 # A 32-bit operand in memory pointed to by the DS:(E)SI
132 # or ES:(E)DI registers. Intel's notation is m32.
133 Mv_Operand
134
135 # A 64-bit operand in memory. Intel's notation is m64.
136 Mo_Operand
137
138 # A 128-bit operand in memory. Intel's notation is m128.
139 # AMD's notation is Mdq.
140 # Note: Because the size is the same, Mdq_Operand is a synonym for Mpd_Operand
141 # and Mps_Operand.
142 Mdq_Operand
143
144 # A memory operand containing a far pointer composed of
145 # a 16-bit selector and a 16 bit offset. Intel's notation
146 # is m16:16.
147 Mpw_Operand
148
149 # A memory operand containing a far pointer composed of
150 # a 16 bit selector and a 32 bit offset. Intel's notation
151 # is m16:32.
152 Mpv_Operand
153
154 # A memory operand containing a far pointer composed of
155 # a 16 bit selector and a 64 bit offset. Intel's notation
156 # is m16:64.
157 Mpo_Operand
158
159 # Like E_Operand, but uses MMX registers instead.
160 Mmx_E_Operand
161
162 # Pseudonym for Mxx_E_Operand that automatically adds
163 # OpFlag(ModRmModIs0x3).
164 Mmx_N_Operand
165
166 # Like G_Operand, but uses MMX registers instead.
167 Mmx_G_Operand
168
169 # Like Mmx_G_Operand, but size is always 32 bits.
170 Mmx_Gd_Operand
171
172 # Like E_Operand, but uses XMM registers instead.
173 Xmm_E_Operand
174
175 # A 64-bit Xmm value, as defined by Xmm_E_Operand
176 Xmm_Eo_Operand
177
178 # Like G_Operand, but uses XMM registers instead.
179 Xmm_G_Operand
180
181 # A 64-bit Xmm value, as defined by Xmm_G_operand.
182 Xmm_Go_Operand
183
184 # Control register specified by the ModRm reg field.
185 C_Operand
186
187 # Debug register specified by the ModRm reg field.
188 D_Operand
189
190 # Note: The instruction decoder may count on the fact that the O_Operand
191 # values are contiguous, in the order specified.
192
193 # A memory offset. Size is defined by the computed operand size.
194 O_Operand
195
196 # A memory 8-bit offset. Intel's notation is moffs8.
197 Ob_Operand
198
199 # A memory 16-bit offset. Intel's notation is moffs16.
200 Ow_Operand
201
202 # A memory 32-bit offset. Intel's notation is moffs32.
203 Ov_Operand
204
205 # A memory 64-bit offset. Intel's notation is moffs64.
206 Oo_Operand
207
208 # A segment register. The segment register bit assignments
209 # are ES=0, CS=1, SS=2, DS=3, FS=4, GS=5. Intel's notation
210 # is Sreg.
211 S_Operand
212
213 # A Floating point ST register enocoded in opcode byte.
214 St_Operand
215
216 # Note: The instruction decoder may count on the fact that the list
217 # of register values are contiguous, in the order specified.
218
219 # Unknown register - Used if actual register can't
220 # be determined by the instruction decoder.
221 RegUnknown
222 RegAL # 8-bit registers in 32-bit and 64-bit modes.
223 RegBL
224 RegCL
225 RegDL
226
227 RegAH # Additional 8-bit regisister in 32-bit mode.
228 RegBH
229 RegCH
230 RegDH
231
232 RegDIL # Additional 8-bit registers in 64-bit mode.
233 RegSIL
234 RegBPL
235 RegSPL
236 # Note: Intel manual claims that r8l..r15l should be used. However, AMD
237 # manual and (xed from Intel) uses r8b..r15b. Therefore we will use the
238 # latter.
239 RegR8B
240 RegR9B
241 RegR10B
242 RegR11B
243 RegR12B
244 RegR13B
245 RegR14B
246 RegR15B
247
248 RegAX # 16 bit registers in 32-bit and 64-bit modes.
249 RegBX
250 RegCX
251 RegDX
252 RegSI
253 RegDI
254 RegBP
255 RegSP
256
257 RegR8W # 16 bit registers only in 64-bit mode.
258 RegR9W
259 RegR10W
260 RegR11W
261 RegR12W
262 RegR13W
263 RegR14W
264 RegR15W
265
266 RegEAX # General 32-bit registers in 32-bit and 64-bit modes.
267 RegEBX
268 RegECX
269 RegEDX
270 RegESI
271 RegEDI
272 RegEBP
273 RegESP
274
275 RegR8D # Additional 32-bit registers in 64-bit mode.
276 RegR9D
277 RegR10D
278 RegR11D
279 RegR12D
280 RegR13D
281 RegR14D
282 RegR15D
283
284 RegCS # 16-bit segment registers in 32-bit and 64-bit modes.
285 RegDS
286 RegSS
287 RegES
288 RegFS
289 RegGS
290
291 RegCR0 # Control registers in 32-bit and 64-bit modes.
292 RegCR1
293 RegCR2
294 RegCR3
295 RegCR4
296 RegCR5
297 RegCR6
298 RegCR7
299 RegCR8
300 RegCR9
301 RegCR10
302 RegCR11
303 RegCR12
304 RegCR13
305 RegCR14
306 RegCR15
307
308 RegDR0 # Debug registers in 32-bit and 64-bit modes.
309 RegDR1
310 RegDR2
311 RegDR3
312 RegDR4
313 RegDR5
314 RegDR6
315 RegDR7
316 RegDR8
317 RegDR9
318 RegDR10
319 RegDR11
320 RegDR12
321 RegDR13
322 RegDR14
323 RegDR15
324
325 RegEFLAGS # Program status and control register in 32-bit mode.
326 RegRFLAGS # Program status and control register in 64-bit mode.
327
328 RegEIP # Instruction pointer in 32-bit mode.
329 RegRIP # Instruction pointer in 64-bit mode.
330
331 RegRAX # General purpose 64-bit registers in 64-bit mode.
332 RegRBX
333 RegRCX
334 RegRDX
335 RegRSI
336 RegRDI
337 RegRBP
338 RegRSP
339 RegR8
340 RegR9
341 RegR10
342 RegR11
343 RegR12
344 RegR13
345 RegR14
346 RegR15
347
348 # Use EIP or RIP, based on address size - EIP in 32-bits, RIP in 64-bits.
349 RegREIP
350
351 # The following define the choice of register, based on operand size, as in the
352 # following table:
353 # Entry 16 bits 32 bits 64 bits
354 # -------------------------------------
355 # REAX AX EAX RAX
356 # REBX BX EBX RBX
357 # RECX CX ECX RCX
358 # REDX DX EDX RDX
359 # RESP SP ESP RSP
360 # REBP BP EBP RSP
361 # RESI SI ESI RSI
362 # REDI DI EDI RDI
363 RegREAX
364 RegREBX
365 RegRECX
366 RegREDX
367 RegRESP
368 RegREBP
369 RegRESI
370 RegREDI
371
372 # The following define the choice of register, based on address size, as in the
373 # following table:
374 # Entry 16 bits 32 bits 64 bits
375 # -------------------------------------
376 # REAXa AX EAX RAX
377 RegREAXa
378
379 # Use DS:(R,E)SI, like that specified in movsb, movsw, and movsd, and movsq
380 # instructions.
381 RegDS_ESI
382 # Use DS:(R,E)DI, like that specified in maskmovq and maskmovdqu instructions.
383 RegDS_EDI
384 # Use ES:(R,E)DI, like that specified in the insb, insw, and insd instructions.
385 RegES_EDI
386 # Use DS:(R,E)BX, like that specified in the xlat instruction.
387 RegDS_EBX,
388
389 # Floating point stack registers.
390 RegST0
391 RegST1
392 RegST2
393 RegST3
394 RegST4
395 RegST5
396 RegST6
397 RegST7
398
399 # MMX registers.
400 RegMMX0
401 RegMMX1
402 RegMMX2
403 RegMMX3
404 RegMMX4
405 RegMMX5
406 RegMMX6
407 RegMMX7
408
409 # XMM registers.
410 RegXMM0
411 RegXMM1
412 RegXMM2
413 RegXMM3
414 RegXMM4
415 RegXMM5
416 RegXMM6
417 RegXMM7
418 RegXMM8
419 RegXMM9
420 RegXMM10
421 RegXMM11
422 RegXMM12
423 RegXMM13
424 RegXMM14
425 RegXMM15
426
427 # One of the eight general purpose registers, less the stack pointer, based
428 # on operand size.
429 RegGP7
430
431 # Predefined constants.
432 Const_1
OLDNEW
« no previous file with comments | « src/trusted/validator/x86/decoder/ncopcode_operand_flag.enum ('k') | src/trusted/validator/x86/decoder/ncopcode_prefix.enum » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698