VirtualBox

root/trunk/include/VBox/disopcode.h

Revision 13241, 24.9 kB (checked in by vboxsync, 1 month ago)

Added support for three byte opcodes (not complete; just to test invept & invvpid)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /** @file
2  * Disassembler - opcode.h.
3  */
4
5 /*
6  * Copyright (C) 2006-2007 Sun Microsystems, Inc.
7  *
8  * This file is part of VirtualBox Open Source Edition (OSE), as
9  * available from http://www.virtualbox.org. This file is free software;
10  * you can redistribute it and/or modify it under the terms of the GNU
11  * General Public License (GPL) as published by the Free Software
12  * Foundation, in version 2 as it comes in the "COPYING" file of the
13  * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14  * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15  *
16  * The contents of this file may alternatively be used under the terms
17  * of the Common Development and Distribution License Version 1.0
18  * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19  * VirtualBox OSE distribution, in which case the provisions of the
20  * CDDL are applicable instead of those of the GPL.
21  *
22  * You may elect to license modified versions of this file under the
23  * terms and conditions of either the GPL or the CDDL or both.
24  *
25  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26  * Clara, CA 95054 USA or visit http://www.sun.com if you need
27  * additional information or have any questions.
28  */
29
30 #ifndef ___VBox_opcode_h
31 #define ___VBox_opcode_h
32
33 #define MODRM_MOD(a)    (a>>6)
34 #define MODRM_REG(a)    ((a>>3)&0x7)
35 #define MODRM_RM(a)     (a&0x7)
36 #define MAKE_MODRM(mod, reg, rm) (((mod&3) << 6) | ((reg&7) << 3) | (rm&7))
37
38 #define SIB_SCALE(a)    (a>>6)
39 #define SIB_INDEX(a)    ((a>>3)&0x7)
40 #define SIB_BASE(a)     (a&0x7)
41
42
43 /** Full Intel X86 opcode list
44  * @{
45  */
46 #define OP_INVALID      0
47 #define OP_OPSIZE       1
48 #define OP_ADDRSIZE     2
49 #define OP_SEG          3
50 #define OP_REPNE        4
51 #define OP_REPE         5
52 #define OP_REX          6
53 #define OP_LOCK         7
54 #define OP_LAST_PREFIX  OP_LOCK   /* disassembler assumes this is the last prefix byte value!!!! */
55 #define OP_AND          8
56 #define OP_OR           9
57 #define OP_DAA          10
58 #define OP_SUB          11
59 #define OP_DAS          12
60 #define OP_XOR          13
61 #define OP_AAA          14
62 #define OP_CMP          15
63 #define OP_IMM_GRP1     16
64 #define OP_AAS          17
65 #define OP_INC          18
66 #define OP_DEC          19
67 #define OP_PUSHA        20
68 #define OP_POPA         21
69 #define OP_BOUND        22
70 #define OP_ARPL         23
71 #define OP_PUSH         24
72 #define OP_POP          25
73 #define OP_IMUL         26
74 #define OP_INSB         27
75 #define OP_INSWD        28
76 #define OP_OUTSB        29
77 #define OP_OUTSWD       30
78 #define OP_JO           31
79 #define OP_JNO          32
80 #define OP_JC           33
81 #define OP_JNC          34
82 #define OP_JE           35
83 #define OP_JNE          36
84 #define OP_JBE          37
85 #define OP_JNBE         38
86 #define OP_JS           39
87 #define OP_JNS          40
88 #define OP_JP           41
89 #define OP_JNP          42
90 #define OP_JL           43
91 #define OP_JNL          44
92 #define OP_JLE          45
93 #define OP_JNLE         46
94 #define OP_ADD          47
95 #define OP_TEST         48
96 #define OP_XCHG         49
97 #define OP_MOV          50
98 #define OP_LEA          51
99 #define OP_NOP          52
100 #define OP_CBW          53
101 #define OP_CWD          54
102 #define OP_CALL         55
103 #define OP_WAIT         56
104 #define OP_PUSHF        57
105 #define OP_POPF         58
106 #define OP_SAHF         59
107 #define OP_LAHF         60
108 #define OP_MOVSB        61
109 #define OP_MOVSWD       62
110 #define OP_CMPSB        63
111 #define OP_CMPWD        64
112 #define OP_STOSB        65
113 #define OP_STOSWD       66
114 #define OP_LODSB        67
115 #define OP_LODSWD       68
116 #define OP_SCASB        69
117 #define OP_SCASWD       70
118 #define OP_SHIFT_GRP2   71
119 #define OP_RETN         72
120 #define OP_LES          73
121 #define OP_LDS          74
122 #define OP_ENTER        75
123 #define OP_LEAVE        76
124 #define OP_RETF         77
125 #define OP_INT3         78
126 #define OP_INT          79
127 #define OP_INTO         80
128 #define OP_IRET         81
129 #define OP_AAM          82
130 #define OP_AAD          83
131 #define OP_XLAT         84
132 #define OP_ESCF0        85
133 #define OP_ESCF1        86
134 #define OP_ESCF2        87
135 #define OP_ESCF3        88
136 #define OP_ESCF4        89
137 #define OP_ESCF5        90
138 #define OP_ESCF6        91
139 #define OP_ESCF7        92
140 #define OP_LOOPNE       93
141 #define OP_LOOPE        94
142 #define OP_LOOP         95
143 #define OP_JECXZ        96
144 #define OP_IN           97
145 #define OP_OUT          98
146 #define OP_JMP          99
147 #define OP_2B_ESC       100
148 #define OP_ADC          101
149 #define OP_SBB          102
150 #define OP_HLT          103
151 #define OP_CMC          104
152 #define OP_UNARY_GRP3   105
153 #define OP_CLC          106
154 #define OP_STC          107
155 #define OP_CLI          108
156 #define OP_STI          109
157 #define OP_CLD          110
158 #define OP_STD          111
159 #define OP_INC_GRP4     112
160 #define OP_IND_GRP5     113
161 #define OP_GRP6         114
162 #define OP_GRP7         115
163 #define OP_LAR          116
164 #define OP_LSL          117
165 #define OP_SYSCALL      118
166 #define OP_CLTS         119
167 #define OP_SYSRET       120
168 #define OP_INVD         121
169 #define OP_WBINVD       122
170 #define OP_ILLUD2       123
171 #define OP_FEMMS        124
172 #define OP_3DNOW        125
173 #define OP_MOVUPS       126
174 #define OP_MOVLPS       127
175 #define OP_UNPCKLPS     128
176 #define OP_MOVHPS       129
177 #define OP_UNPCKHPS     130
178 #define OP_PREFETCH_GRP16   131
179 #define OP_MOV_CR       132
180 #define OP_MOVAPS       133
181 #define OP_CVTPI2PS     134
182 #define OP_MOVNTPS      135
183 #define OP_CVTTPS2PI    136
184 #define OP_CVTPS2PI     137
185 #define OP_UCOMISS      138
186 #define OP_COMISS       139
187 #define OP_WRMSR        140
188 #define OP_RDTSC        141
189 #define OP_RDMSR        142
190 #define OP_RPPMC        143
191 #define OP_SYSENTER     144
192 #define OP_SYSEXIT      145
193 #define OP_PAUSE        146
194 #define OP_CMOVO        147
195 #define OP_CMOVNO       148
196 #define OP_CMOVC        149
197 #define OP_CMOVNC       150
198 #define OP_CMOVZ        151
199 #define OP_CMOVNZ       152
200 #define OP_CMOVBE       153
201 #define OP_CMOVNBE      154
202 #define OP_CMOVS        155
203 #define OP_CMOVNS       156
204 #define OP_CMOVP        157
205 #define OP_CMOVNP       158
206 #define OP_CMOVL        159
207 #define OP_CMOVNL       160
208 #define OP_CMOVLE       161
209 #define OP_CMOVNLE      162
210 #define OP_MOVMSKPS     163
211 #define OP_SQRTPS       164
212 #define OP_RSQRTPS      165
213 #define OP_RCPPS        166
214 #define OP_ANDPS        167
215 #define OP_ANDNPS       168
216 #define OP_ORPS         169
217 #define OP_XORPS        170
218 #define OP_ADDPS        171
219 #define OP_MULPS        172
220 #define OP_CVTPS2PD     173
221 #define OP_CVTDQ2PS     174
222 #define OP_SUBPS        175
223 #define OP_MINPS        176
224 #define OP_DIVPS        177
225 #define OP_MAXPS        178
226 #define OP_PUNPCKLBW    179
227 #define OP_PUNPCKLWD    180
228 #define OP_PUNPCKLDQ    181
229 #define OP_PACKSSWB     182
230 #define OP_PCMPGTB      183
231 #define OP_PCMPGTW      184
232 #define OP_PCMPGTD      185
233 #define OP_PACKUSWB     186
234 #define OP_PUNPCKHBW    187
235 #define OP_PUNPCKHWD    188
236 #define OP_PUNPCKHDQ    189
237 #define OP_PACKSSDW     190
238 #define OP_MOVD         191
239 #define OP_MOVQ         192
240 #define OP_PSHUFW       193
241 #define OP_3B_ESC4      194
242 #define OP_3B_ESC5      195
243
244 #define OP_PCMPEQB      196
245 #define OP_PCMPEQW      197
246 #define OP_PCMPEQD      198
247 #define OP_SETO         199
248 #define OP_SETNO        200
249 #define OP_SETC         201
250 #define OP_SETNC        202
251 #define OP_SETE         203
252 #define OP_SETNE        204
253 #define OP_SETBE        205
254 #define OP_SETNBE       206
255 #define OP_SETS         207
256 #define OP_SETNS        208
257 #define OP_SETP         209
258 #define OP_SETNP        210
259 #define OP_SETL         211
260 #define OP_SETNL        212
261 #define OP_SETLE        213
262 #define OP_SETNLE       214
263 #define OP_CPUID        215
264 #define OP_BT           216
265 #define OP_SHLD         217
266 #define OP_RSM          218
267 #define OP_BTS          219
268 #define OP_SHRD         220
269 #define OP_GRP15        221
270 #define OP_CMPXCHG      222
271 #define OP_LSS          223
272 #define OP_BTR          224
273 #define OP_LFS          225
274 #define OP_LGS          226
275 #define OP_MOVZX        227
276 #define OP_GRP10_INV    228
277 #define OP_GRP8         229
278 #define OP_BTC          230
279 #define OP_BSF          231
280 #define OP_BSR          232
281 #define OP_MOVSX        233
282 #define OP_XADD         234
283 #define OP_CMPPS        235
284 #define OP_MOVNTI       236
285 #define OP_PINSRW       237
286 #define OP_PEXTRW       238
287 #define OP_SHUFPS       239
288 #define OP_GRP9         240
289 #define OP_BSWAP        241
290 #define OP_PSRLW        242
291 #define OP_PSRLD        243
292 #define OP_PSRLQ        244
293 #define OP_PADDQ        245
294 #define OP_PMULLW       246
295 #define OP_PMOVSKB      247
296 #define OP_PSUBUSB      248
297 #define OP_PSUBUSW      249
298 #define OP_PMINUB       250
299 #define OP_PAND         251
300 #define OP_PADDUSB      252
301 #define OP_PADDUSW      253
302 #define OP_PMAXUB       254
303 #define OP_PANDN        255
304 #define OP_PAVGN        256
305 #define OP_PSRAW        257
306 #define OP_PSRAD        258
307 #define OP_PAVGW        259
308 #define OP_PMULHUW      260
309 #define OP_PMULHW       261
310 #define OP_MOVNTQ       262
311 #define OP_PSUBSB       263
312 #define OP_PSUBSW       264
313 #define OP_PMINSW       265
314 #define OP_POR          266
315 #define OP_PADDSB       267
316 #define OP_PADDSW       268
317 #define OP_PMAXSW       269
318 #define OP_PXOR         270
319 #define OP_PSLLW        271
320 #define OP_PSLLD        272
321 #define OP_PSSQ         273
322 #define OP_PMULUDQ      274
323 #define OP_PADDWD       275
324 #define OP_PADBW        276
325 #define OP_PMASKMOVQ    277
326 #define OP_PSUBB        278
327 #define OP_PSUBW        279
328
329 #define OP_PSUBD        281
330 #define OP_PADDB        282
331 #define OP_PADDW        283
332 #define OP_PADDD        284
333 #define OP_MOVUPD       285
334 #define OP_MOVLPD       286
335 #define OP_UNPCKLPD     287
336 #define OP_UNPCKHPD     288
337 #define OP_MOVHPD       289
338
339 #define OP_MOVAPD       291
340 #define OP_CVTPI2PD     292
341 #define OP_MOVNTPD      293
342 #define OP_CVTTPD2PI    294
343 #define OP_CVTPD2PI     295
344 #define OP_UCOMISD      296
345 #define OP_COMISD       297
346 #define OP_MOVMSKPD     298
347 #define OP_SQRTPD       299
348 #define OP_ANDPD        301
349 #define OP_ANDNPD       302
350 #define OP_ORPD         303
351 #define OP_XORPD        304
352 #define OP_ADDPD        305
353 #define OP_MULPD        306
354 #define OP_CVTPD2PS     307
355 #define OP_CVTPS2DQ     308
356 #define OP_SUBPD        309
357 #define OP_MINPD        310
358 #define OP_DIVPD        311
359 #define OP_MAXPD        312
360
361 #define OP_GRP12        313
362 #define OP_GRP13        314
363 #define OP_GRP14        315
364 #define OP_EMMS         316
365 #define OP_MMX_UD78     317
366 #define OP_MMX_UD79     318
367 #define OP_MMX_UD7A     319
368 #define OP_MMX_UD7B     320
369 #define OP_MMX_UD7C     321
370 #define OP_MMX_UD7D     322
371
372
373 #define OP_PUNPCKLQDQ   325
374 #define OP_PUNPCKHQD    326
375
376 #define OP_MOVDQA       328
377 #define OP_PSHUFD       329
378
379
380
381 #define OP_CMPPD        334
382 #define OP_SHUFPD       337
383
384
385 #define OP_CVTTPD2DQ    353
386 #define OP_MOVNTDQ      354
387
388 #define OP_PSHUFB       355
389 #define OP_PHADDW       356
390 #define OP_PHADDD       357
391 #define OP_PHADDSW      358
392 #define OP_PMADDUBSW    359
393 #define OP_PHSUBW       360
394 #define OP_PHSUBD       361
395 #define OP_PHSUBSW      362
396 #define OP_PSIGNB       363
397 #define OP_PSIGNW       364
398 #define OP_PSIGND       365
399 #define OP_PMULHRSW     366
400 #define OP_PBLENDVB     367
401 #define OP_BLENDVPS     368
402 #define OP_BLENDVPD     369
403 #define OP_PTEST        370
404 #define OP_PABSB        371
405 #define OP_PABSW        372
406 #define OP_PABSD        373
407
408 #define OP_PMASKMOVDQU  376
409 #define OP_MOVSD        377
410 #define OP_CVTSI2SD     378
411 #define OP_CVTTSD2SI    379
412 #define OP_CVTSD2SI     380
413 #define OP_SQRTSD       381
414 #define OP_ADDSD        382
415 #define OP_MULSD        383
416 #define OP_CVTSD2SS     384
417 #define OP_SUBSD        385
418 #define OP_MINSD        386
419 #define OP_DIVSD        387
420 #define OP_MAXSD        388
421 #define OP_PSHUFLW      389
422 #define OP_CMPSD        390
423 #define OP_MOVDQ2Q      391
424 #define OP_CVTPD2DQ     392
425 #define OP_MOVSS        393
426 #define OP_CVTSI2SS     394
427 #define OP_CVTTSS2SI    395
428 #define OP_CVTSS2SI     396
429 #define OP_SQRTSS       397
430 #define OP_RSQRTSS      398
431 #define OP_ADDSS        399
432 #define OP_MULSS        401
433 #define OP_CVTTPS2DQ    403
434 #define OP_SUBSS        404
435 #define OP_MINSS        405
436 #define OP_DIVSS        406
437 #define OP_MAXSS        407
438 #define OP_MOVDQU       408
439 #define OP_PSHUFHW      409
440 #define OP_CMPSS        410
441 #define OP_MOVQ2DQ      411
442 #define OP_CVTDQ2PD     412
443 /** @} */
444
445 /** Floating point ops
446  * @{
447  */
448 #define OP_FADD         413
449 #define OP_FMUL         414
450 #define OP_FCOM         415
451 #define OP_FCOMP        416
452 #define OP_FSUB         417
453 #define OP_FSUBR        418
454 #define OP_FDIV         419
455 #define OP_FDIVR        420
456 #define OP_FLD          421
457 #define OP_FST          422
458 #define OP_FSTP         423
459 #define OP_FLDENV       424
460
461 #define OP_FSTENV       426
462 #define OP_FSTCW        427
463 #define OP_FXCH         428
464 #define OP_FNOP         429
465 #define OP_FCHS         430
466 #define OP_FABS         431
467
468 #define OP_FLD1         433
469 #define OP_FLDL2T       434
470 #define OP_FLDL2E       435
471 #define OP_FLDPI        436
472 #define OP_FLDLG2       437
473 #define OP_FLDLN2       438
474 #define OP_FLDZ         439
475 #define OP_F2XM1        440
476 #define OP_FYL2X        441
477 #define OP_FPTAN        442
478 #define OP_FPATAN       443
479 #define OP_FXTRACT      444
480 #define OP_FREM1        445
481 #define OP_FDECSTP      446
482 #define OP_FINCSTP      447
483 #define OP_FPREM        448
484 #define OP_FYL2XP1      449
485 #define OP_FSQRT        450
486 #define OP_FSINCOS      451
487 #define OP_FRNDINT      452
488 #define OP_FSCALE       453
489 #define OP_FSIN         454
490 #define OP_FCOS         455
491 #define OP_FIADD        456
492 #define OP_FIMUL        457
493 #define OP_FISUB        460
494 #define OP_FISUBR       461
495 #define OP_FIDIV        462
496 #define OP_FIDIVR       463
497 #define OP_FCMOVB       464
498 #define OP_FCMOVE       465
499 #define OP_FCMOVBE      466
500 #define OP_FCMOVU       467
501 #define OP_FUCOMPP      468
502 #define OP_FILD         469
503 #define OP_FIST         470
504 #define OP_FISTP        471
505 #define OP_FCMOVNB      474
506 #define OP_FCMOVNE      475
507 #define OP_FCMOVNBE     476
508 #define OP_FCMOVNU      477
509 #define OP_FCLEX        478
510 #define OP_FINIT        479
511 #define OP_FUCOMI       480
512 #define OP_FCOMI        481
513 #define OP_FRSTOR       482
514 #define OP_FSAVE        483
515 #define OP_FNSTSW       484
516 #define OP_FFREE        485
517 #define OP_FUCOM        486
518 #define OP_FUCOMP       487
519 #define OP_FICOM        490
520 #define OP_FICOMP       491
521 #define OP_FADDP        496
522 #define OP_FMULP        497
523 #define OP_FCOMPP       498
524 #define OP_FSUBRP       499
525 #define OP_FSUBP        500
526 #define OP_FDIVRP       501
527 #define OP_FDIVP        502
528 #define OP_FBLD         503
529 #define OP_FBSTP        504
530 #define OP_FCOMIP       506
531 #define OP_FUCOMIP      507
532 /** @} */
533
534 /** 3DNow!
535  * @{
536  */
537 #define OP_PI2FW        508
538 #define OP_PI2FD        509
539 #define OP_PF2IW        510
540 #define OP_PF2ID        511
541 #define OP_PFPNACC      512
542 #define OP_PFCMPGE      513
543 #define OP_PFMIN        514
544 #define OP_PFRCP        515
545 #define OP_PFRSQRT      516
546 #define OP_PFSUB        517
547 #define OP_PFADD        518
548 #define OP_PFCMPGT      519
549 #define OP_PFMAX        520
550 #define OP_PFRCPIT1     521
551 #define OP_PFRSQRTIT1   522
552 #define OP_PFSUBR       523
553 #define OP_PFACC        524
554 #define OP_PFCMPEQ      525
555 #define OP_PFMUL        526
556 #define OP_PFRCPIT2     527
557 #define OP_PFMULHRW     528
558 #define OP_PFSWAPD      529
559 #define OP_PAVGUSB      530
560 #define OP_PFNACC       531
561 #define OP_ROL          532
562 #define OP_ROR          533
563 #define OP_RCL          534
564 #define OP_RCR          535
565 #define OP_SHL          536
566 #define OP_SHR          537
567 #define OP_SAR          538
568 #define OP_NOT          539
569 #define OP_NEG          540
570 #define OP_MUL          541
571 #define OP_DIV          542
572 #define OP_IDIV         543
573 #define OP_SLDT         544
574 #define OP_STR          545
575 #define OP_LLDT         546
576 #define OP_LTR          547
577 #define OP_VERR         548
578 #define OP_VERW         549
579 #define OP_SGDT         550
580 #define OP_LGDT         551
581 #define OP_SIDT         552
582 #define OP_LIDT         553
583 #define OP_SMSW         554
584 #define OP_LMSW         555
585 #define OP_INVLPG       556
586 #define OP_CMPXCHG8B    557
587 #define OP_PSLLQ        558
588 #define OP_PSRLDQ       559
589 #define OP_PSLLDQ       560
590 #define OP_FXSAVE       561
591 #define OP_FXRSTOR      562
592 #define OP_LDMXCSR      563
593 #define OP_STMXCSR      564
594 #define OP_LFENCE       565
595 #define OP_MFENCE       566
596 #define OP_SFENCE       567
597 #define OP_PREFETCH     568
598 #define OP_MONITOR      569
599 #define OP_MWAIT        570
600 #define OP_CLFLUSH      571
601
602 #define OP_MOV_DR       600
603 #define OP_MOV_TR       601
604
605 #define OP_SWAPGS       610
606
607 /* VT-x instructions */
608 #define OP_VMREAD       650
609 #define OP_VMWRITE      651
610 #define OP_VMCALL       652
611 #define OP_VMXON        653
612 #define OP_VMXOFF       654
613 #define OP_VMCLEAR      655
614 #define OP_VMLAUNCH     656
615 #define OP_VMRESUME     657
616 #define OP_VMPTRLD      658
617 #define OP_VMPTRST      659
618 #define OP_INVEPT       660
619 #define OP_INVVPID      661
620
621 /* 64 bits instruction */
622 #define OP_MOVSXD       700
623
624 /** @} */
625
626
627 /** Opcode parameters
628  * @{
629  */
630 /* NOTE: Register order is important for translations!! */
631 #define OP_PARM_NONE            0
632 #define OP_PARM_REG_EAX         1
633 #define OP_PARM_REG_GEN32_START OP_PARM_REG_EAX
634 #define OP_PARM_REG_ECX         2
635 #define OP_PARM_REG_EDX         3
636 #define OP_PARM_REG_EBX         4
637 #define OP_PARM_REG_ESP         5
638 #define OP_PARM_REG_EBP         6
639 #define OP_PARM_REG_ESI         7
640 #define OP_PARM_REG_EDI         8
641 #define OP_PARM_REG_GEN32_END   OP_PARM_REG_EDI
642
643 #define OP_PARM_REG_ES          9
644 #define OP_PARM_REG_SEG_START   OP_PARM_REG_ES
645 #define OP_PARM_REG_CS          10
646 #define OP_PARM_REG_SS          11
647 #define OP_PARM_REG_DS          12
648 #define OP_PARM_REG_FS          13
649 #define OP_PARM_REG_GS          14
650 #define OP_PARM_REG_SEG_END     OP_PARM_REG_GS
651
652 #define OP_PARM_REG_AX          15
653 #define OP_PARM_REG_GEN16_START   OP_PARM_REG_AX
654 #define OP_PARM_REG_CX          16
655 #define OP_PARM_REG_DX          17
656 #define OP_PARM_REG_BX          18
657 #define OP_PARM_REG_SP          19
658 #define OP_PARM_REG_BP          20
659 #define OP_PARM_REG_SI          21
660 #define OP_PARM_REG_DI          22
661 #define OP_PARM_REG_GEN16_END   OP_PARM_REG_DI
662
663 #define OP_PARM_REG_AL          23
664 #define OP_PARM_REG_GEN8_START  OP_PARM_REG_AL
665 #define OP_PARM_REG_CL          24
666 #define OP_PARM_REG_DL          25
667 #define OP_PARM_REG_BL          26
668 #define OP_PARM_REG_AH          27
669 #define OP_PARM_REG_CH          28
670 #define OP_PARM_REG_DH          29
671 #define OP_PARM_REG_BH          30
672 #define OP_PARM_REG_GEN8_END    OP_PARM_REG_BH
673
674 #define OP_PARM_REGFP_0         31
675 #define OP_PARM_REG_FP_START    OP_PARM_REGFP_0
676 #define OP_PARM_REGFP_1         32
677 #define OP_PARM_REGFP_2         33
678 #define OP_PARM_REGFP_3         34
679 #define OP_PARM_REGFP_4         35
680 #define OP_PARM_REGFP_5         36
681 #define OP_PARM_REGFP_6         37
682 #define OP_PARM_REGFP_7         38
683 #define OP_PARM_REG_FP_END      OP_PARM_REGFP_7
684
685 #define OP_PARM_NTA             39
686 #define OP_PARM_T0              40
687 #define OP_PARM_T1              41
688 #define OP_PARM_T2              42
689
690 #define OP_PARM_1               43
691
692 #define OP_PARM_REX             50
693 #define OP_PARM_REX_START       OP_PARM_REX
694 #define OP_PARM_REX_B           51
695 #define OP_PARM_REX_X           52
696 #define OP_PARM_REX_XB          53
697 #define OP_PARM_REX_R           54
698 #define OP_PARM_REX_RB          55
699 #define OP_PARM_REX_RX          56
700 #define OP_PARM_REX_RXB         57
701 #define OP_PARM_REX_W           58
702 #define OP_PARM_REX_WB          59
703 #define OP_PARM_REX_WX          60
704 #define OP_PARM_REX_WXB         61
705 #define OP_PARM_REX_WR          62
706 #define OP_PARM_REX_WRB         63
707 #define OP_PARM_REX_WRX         64
708 #define OP_PARM_REX_WRXB        65
709
710 #define OP_PARM_REG_RAX         100
711 #define OP_PARM_REG_GEN64_START OP_PARM_REG_RAX
712 #define OP_PARM_REG_RCX         101
713 #define OP_PARM_REG_RDX         102
714 #define OP_PARM_REG_RBX         103
715 #define OP_PARM_REG_RSP         104
716 #define OP_PARM_REG_RBP         105
717 #define OP_PARM_REG_RSI         106
718 #define OP_PARM_REG_RDI         107
719 #define OP_PARM_REG_R8          108
720 #define OP_PARM_REG_R9          109
721 #define OP_PARM_REG_R10         110
722 #define OP_PARM_REG_R11        &n