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

Side by Side Diff: opcodes/i386-opc.h

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 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
« no previous file with comments | « opcodes/i386-init.h ('k') | opcodes/i386-opc.tbl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Declarations for Intel 80386 opcode table 1 /* Declarations for Intel 80386 opcode table
2 Copyright 2007, 2008, 2009, 2010, 2012 2 Copyright 2007, 2008, 2009, 2010, 2012
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5 This file is part of the GNU opcodes library. 5 This file is part of the GNU opcodes library.
6 6
7 This library is free software; you can redistribute it and/or modify 7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option) 9 the Free Software Foundation; either version 3, or (at your option)
10 any later version. 10 any later version.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 /* ABM New Instructions required */ 87 /* ABM New Instructions required */
88 CpuABM, 88 CpuABM,
89 /* SSE4.1 support required */ 89 /* SSE4.1 support required */
90 CpuSSE4_1, 90 CpuSSE4_1,
91 /* SSE4.2 support required */ 91 /* SSE4.2 support required */
92 CpuSSE4_2, 92 CpuSSE4_2,
93 /* AVX support required */ 93 /* AVX support required */
94 CpuAVX, 94 CpuAVX,
95 /* AVX2 support required */ 95 /* AVX2 support required */
96 CpuAVX2, 96 CpuAVX2,
97 /* Intel AVX-512 Foundation Instructions support required */
98 CpuAVX512F,
99 /* Intel AVX-512 Conflict Detection Instructions support required */
100 CpuAVX512CD,
101 /* Intel AVX-512 Exponential and Reciprocal Instructions support
102 required */
103 CpuAVX512ER,
104 /* Intel AVX-512 Prefetch Instructions support required */
105 CpuAVX512PF,
97 /* Intel L1OM support required */ 106 /* Intel L1OM support required */
98 CpuL1OM, 107 CpuL1OM,
99 /* Intel K1OM support required */ 108 /* Intel K1OM support required */
100 CpuK1OM, 109 CpuK1OM,
101 /* Xsave/xrstor New Instructions support required */ 110 /* Xsave/xrstor New Instructions support required */
102 CpuXsave, 111 CpuXsave,
103 /* Xsaveopt New Instructions support required */ 112 /* Xsaveopt New Instructions support required */
104 CpuXsaveopt, 113 CpuXsaveopt,
105 /* AES support required */ 114 /* AES support required */
106 CpuAES, 115 CpuAES,
107 /* PCLMUL support required */ 116 /* PCLMUL support required */
108 CpuPCLMUL, 117 CpuPCLMUL,
109 /* FMA support required */ 118 /* FMA support required */
110 CpuFMA, 119 CpuFMA,
111 /* FMA4 support required */ 120 /* FMA4 support required */
112 CpuFMA4, 121 CpuFMA4,
113 /* XOP support required */ 122 /* XOP support required */
114 CpuXOP, 123 CpuXOP,
115 /* LWP support required */ 124 /* LWP support required */
116 CpuLWP, 125 CpuLWP,
117 /* BMI support required */ 126 /* BMI support required */
118 CpuBMI, 127 CpuBMI,
119 /* TBM support required */ 128 /* TBM support required */
120 CpuTBM, 129 CpuTBM,
121 /* MOVBE Instruction support required */ 130 /* MOVBE Instruction support required */
122 CpuMovbe, 131 CpuMovbe,
132 /* CMPXCHG16B instruction support required. */
133 CpuCX16,
123 /* EPT Instructions required */ 134 /* EPT Instructions required */
124 CpuEPT, 135 CpuEPT,
125 /* RDTSCP Instruction support required */ 136 /* RDTSCP Instruction support required */
126 CpuRdtscp, 137 CpuRdtscp,
127 /* FSGSBASE Instructions required */ 138 /* FSGSBASE Instructions required */
128 CpuFSGSBase, 139 CpuFSGSBase,
129 /* RDRND Instructions required */ 140 /* RDRND Instructions required */
130 CpuRdRnd, 141 CpuRdRnd,
131 /* F16C Instructions required */ 142 /* F16C Instructions required */
132 CpuF16C, 143 CpuF16C,
133 /* Intel BMI2 support required */ 144 /* Intel BMI2 support required */
134 CpuBMI2, 145 CpuBMI2,
135 /* LZCNT support required */ 146 /* LZCNT support required */
136 CpuLZCNT, 147 CpuLZCNT,
137 /* HLE support required */ 148 /* HLE support required */
138 CpuHLE, 149 CpuHLE,
139 /* RTM support required */ 150 /* RTM support required */
140 CpuRTM, 151 CpuRTM,
141 /* INVPCID Instructions required */ 152 /* INVPCID Instructions required */
142 CpuINVPCID, 153 CpuINVPCID,
143 /* VMFUNC Instruction required */ 154 /* VMFUNC Instruction required */
144 CpuVMFUNC, 155 CpuVMFUNC,
156 /* Intel MPX Instructions required */
157 CpuMPX,
145 /* 64bit support available, used by -march= in assembler. */ 158 /* 64bit support available, used by -march= in assembler. */
146 CpuLM, 159 CpuLM,
147 /* RDRSEED instruction required. */ 160 /* RDRSEED instruction required. */
148 CpuRDSEED, 161 CpuRDSEED,
149 /* Multi-presisionn add-carry instructions are required. */ 162 /* Multi-presisionn add-carry instructions are required. */
150 CpuADX, 163 CpuADX,
151 /* Supports prefetchw instruction. */ 164 /* Supports prefetchw and prefetch instructions. */
152 CpuPRFCHW, 165 CpuPRFCHW,
166 /* SMAP instructions required. */
167 CpuSMAP,
168 /* SHA instructions required. */
169 CpuSHA,
170 /* VREX support required */
171 CpuVREX,
153 /* 64bit support required */ 172 /* 64bit support required */
154 Cpu64, 173 Cpu64,
155 /* Not supported in the 64bit mode */ 174 /* Not supported in the 64bit mode */
156 CpuNo64, 175 CpuNo64,
157 /* The last bitfield in i386_cpu_flags. */ 176 /* The last bitfield in i386_cpu_flags. */
158 CpuMax = CpuNo64 177 CpuMax = CpuNo64
159 }; 178 };
160 179
161 #define CpuNumOfUints \ 180 #define CpuNumOfUints \
162 (CpuMax / sizeof (unsigned int) / CHAR_BIT + 1) 181 (CpuMax / sizeof (unsigned int) / CHAR_BIT + 1)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 unsigned int cpusvme:1; 216 unsigned int cpusvme:1;
198 unsigned int cpuvmx:1; 217 unsigned int cpuvmx:1;
199 unsigned int cpusmx:1; 218 unsigned int cpusmx:1;
200 unsigned int cpussse3:1; 219 unsigned int cpussse3:1;
201 unsigned int cpusse4a:1; 220 unsigned int cpusse4a:1;
202 unsigned int cpuabm:1; 221 unsigned int cpuabm:1;
203 unsigned int cpusse4_1:1; 222 unsigned int cpusse4_1:1;
204 unsigned int cpusse4_2:1; 223 unsigned int cpusse4_2:1;
205 unsigned int cpuavx:1; 224 unsigned int cpuavx:1;
206 unsigned int cpuavx2:1; 225 unsigned int cpuavx2:1;
226 unsigned int cpuavx512f:1;
227 unsigned int cpuavx512cd:1;
228 unsigned int cpuavx512er:1;
229 unsigned int cpuavx512pf:1;
207 unsigned int cpul1om:1; 230 unsigned int cpul1om:1;
208 unsigned int cpuk1om:1; 231 unsigned int cpuk1om:1;
209 unsigned int cpuxsave:1; 232 unsigned int cpuxsave:1;
210 unsigned int cpuxsaveopt:1; 233 unsigned int cpuxsaveopt:1;
211 unsigned int cpuaes:1; 234 unsigned int cpuaes:1;
212 unsigned int cpupclmul:1; 235 unsigned int cpupclmul:1;
213 unsigned int cpufma:1; 236 unsigned int cpufma:1;
214 unsigned int cpufma4:1; 237 unsigned int cpufma4:1;
215 unsigned int cpuxop:1; 238 unsigned int cpuxop:1;
216 unsigned int cpulwp:1; 239 unsigned int cpulwp:1;
217 unsigned int cpubmi:1; 240 unsigned int cpubmi:1;
218 unsigned int cputbm:1; 241 unsigned int cputbm:1;
219 unsigned int cpumovbe:1; 242 unsigned int cpumovbe:1;
243 unsigned int cpucx16:1;
220 unsigned int cpuept:1; 244 unsigned int cpuept:1;
221 unsigned int cpurdtscp:1; 245 unsigned int cpurdtscp:1;
222 unsigned int cpufsgsbase:1; 246 unsigned int cpufsgsbase:1;
223 unsigned int cpurdrnd:1; 247 unsigned int cpurdrnd:1;
224 unsigned int cpuf16c:1; 248 unsigned int cpuf16c:1;
225 unsigned int cpubmi2:1; 249 unsigned int cpubmi2:1;
226 unsigned int cpulzcnt:1; 250 unsigned int cpulzcnt:1;
227 unsigned int cpuhle:1; 251 unsigned int cpuhle:1;
228 unsigned int cpurtm:1; 252 unsigned int cpurtm:1;
229 unsigned int cpuinvpcid:1; 253 unsigned int cpuinvpcid:1;
230 unsigned int cpuvmfunc:1; 254 unsigned int cpuvmfunc:1;
255 unsigned int cpumpx:1;
231 unsigned int cpulm:1; 256 unsigned int cpulm:1;
232 unsigned int cpurdseed:1; 257 unsigned int cpurdseed:1;
233 unsigned int cpuadx:1; 258 unsigned int cpuadx:1;
234 unsigned int cpuprfchw:1; 259 unsigned int cpuprfchw:1;
260 unsigned int cpusmap:1;
261 unsigned int cpusha:1;
262 unsigned int cpuvrex:1;
235 unsigned int cpu64:1; 263 unsigned int cpu64:1;
236 unsigned int cpuno64:1; 264 unsigned int cpuno64:1;
237 #ifdef CpuUnused 265 #ifdef CpuUnused
238 unsigned int unused:(CpuNumOfBits - CpuUnused); 266 unsigned int unused:(CpuNumOfBits - CpuUnused);
239 #endif 267 #endif
240 } bitfield; 268 } bitfield;
241 unsigned int array[CpuNumOfUints]; 269 unsigned int array[CpuNumOfUints];
242 } i386_cpu_flags; 270 } i386_cpu_flags;
243 271
244 /* Position of opcode_modifier bits. */ 272 /* Position of opcode_modifier bits. */
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 /* s suffix on instruction illegal */ 320 /* s suffix on instruction illegal */
293 No_sSuf, 321 No_sSuf,
294 /* q suffix on instruction illegal */ 322 /* q suffix on instruction illegal */
295 No_qSuf, 323 No_qSuf,
296 /* long double suffix on instruction illegal */ 324 /* long double suffix on instruction illegal */
297 No_ldSuf, 325 No_ldSuf,
298 /* instruction needs FWAIT */ 326 /* instruction needs FWAIT */
299 FWait, 327 FWait,
300 /* quick test for string instructions */ 328 /* quick test for string instructions */
301 IsString, 329 IsString,
330 /* quick test if branch instruction is MPX supported */
331 BNDPrefixOk,
302 /* quick test for lockable instructions */ 332 /* quick test for lockable instructions */
303 IsLockable, 333 IsLockable,
304 /* fake an extra reg operand for clr, imul and special register 334 /* fake an extra reg operand for clr, imul and special register
305 processing for some instructions. */ 335 processing for some instructions. */
306 RegKludge, 336 RegKludge,
307 /* The first operand must be xmm0 */ 337 /* The first operand must be xmm0 */
308 FirstXmm0, 338 FirstXmm0,
309 /* An implicit xmm0 as the first operand */ 339 /* An implicit xmm0 as the first operand */
310 Implicit1stXmm0, 340 Implicit1stXmm0,
311 /* The HLE prefix is OK: 341 /* The HLE prefix is OK:
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 2: 3 source operands. 424 2: 3 source operands.
395 */ 425 */
396 #define XOP2SOURCES 1 426 #define XOP2SOURCES 1
397 #define VEX3SOURCES 2 427 #define VEX3SOURCES 2
398 VexSources, 428 VexSources,
399 /* instruction has VEX 8 bit imm */ 429 /* instruction has VEX 8 bit imm */
400 VexImmExt, 430 VexImmExt,
401 /* Instruction with vector SIB byte: 431 /* Instruction with vector SIB byte:
402 1: 128bit vector register. 432 1: 128bit vector register.
403 2: 256bit vector register. 433 2: 256bit vector register.
434 3: 512bit vector register.
404 */ 435 */
405 #define VecSIB128 1 436 #define VecSIB128 1
406 #define VecSIB256 2 437 #define VecSIB256 2
438 #define VecSIB512 3
407 VecSIB, 439 VecSIB,
408 /* SSE to AVX support required */ 440 /* SSE to AVX support required */
409 SSE2AVX, 441 SSE2AVX,
410 /* No AVX equivalent */ 442 /* No AVX equivalent */
411 NoAVX, 443 NoAVX,
444
445 /* insn has EVEX prefix:
446 1: 512bit EVEX prefix.
447 2: 128bit EVEX prefix.
448 3: 256bit EVEX prefix.
449 4: Length-ignored (LIG) EVEX prefix.
450 */
451 #define EVEX512 1
452 #define EVEX128 2
453 #define EVEX256 3
454 #define EVEXLIG 4
455 EVex,
456
457 /* AVX512 masking support:
458 1: Zeroing-masking.
459 2: Merging-masking.
460 3: Both zeroing and merging masking.
461 */
462 #define ZEROING_MASKING 1
463 #define MERGING_MASKING 2
464 #define BOTH_MASKING 3
465 Masking,
466
467 /* Input element size of vector insn:
468 0: 32bit.
469 1: 64bit.
470 */
471 VecESize,
472
473 /* Broadcast factor.
474 0: No broadcast.
475 1: 1to16 broadcast.
476 2: 1to8 broadcast.
477 */
478 #define NO_BROADCAST 0
479 #define BROADCAST_1TO16 1
480 #define BROADCAST_1TO8 2
481 Broadcast,
482
483 /* Static rounding control is supported. */
484 StaticRounding,
485
486 /* Supress All Exceptions is supported. */
487 SAE,
488
489 /* Copressed Disp8*N attribute. */
490 Disp8MemShift,
491
492 /* Default mask isn't allowed. */
493 NoDefMask,
494
412 /* Compatible with old (<= 2.8.1) versions of gcc */ 495 /* Compatible with old (<= 2.8.1) versions of gcc */
413 OldGcc, 496 OldGcc,
414 /* AT&T mnemonic. */ 497 /* AT&T mnemonic. */
415 ATTMnemonic, 498 ATTMnemonic,
416 /* AT&T syntax. */ 499 /* AT&T syntax. */
417 ATTSyntax, 500 ATTSyntax,
418 /* Intel syntax. */ 501 /* Intel syntax. */
419 IntelSyntax, 502 IntelSyntax,
420 /* The last bitfield in i386_opcode_modifier. */ 503 /* The last bitfield in i386_opcode_modifier. */
421 Opcode_Modifier_Max 504 Opcode_Modifier_Max
(...skipping 20 matching lines...) Expand all
442 unsigned int ignoresize:1; 525 unsigned int ignoresize:1;
443 unsigned int defaultsize:1; 526 unsigned int defaultsize:1;
444 unsigned int no_bsuf:1; 527 unsigned int no_bsuf:1;
445 unsigned int no_wsuf:1; 528 unsigned int no_wsuf:1;
446 unsigned int no_lsuf:1; 529 unsigned int no_lsuf:1;
447 unsigned int no_ssuf:1; 530 unsigned int no_ssuf:1;
448 unsigned int no_qsuf:1; 531 unsigned int no_qsuf:1;
449 unsigned int no_ldsuf:1; 532 unsigned int no_ldsuf:1;
450 unsigned int fwait:1; 533 unsigned int fwait:1;
451 unsigned int isstring:1; 534 unsigned int isstring:1;
535 unsigned int bndprefixok:1;
452 unsigned int islockable:1; 536 unsigned int islockable:1;
453 unsigned int regkludge:1; 537 unsigned int regkludge:1;
454 unsigned int firstxmm0:1; 538 unsigned int firstxmm0:1;
455 unsigned int implicit1stxmm0:1; 539 unsigned int implicit1stxmm0:1;
456 unsigned int hleprefixok:2; 540 unsigned int hleprefixok:2;
457 unsigned int repprefixok:1; 541 unsigned int repprefixok:1;
458 unsigned int todword:1; 542 unsigned int todword:1;
459 unsigned int toqword:1; 543 unsigned int toqword:1;
460 unsigned int addrprefixop0:1; 544 unsigned int addrprefixop0:1;
461 unsigned int isprefix:1; 545 unsigned int isprefix:1;
462 unsigned int immext:1; 546 unsigned int immext:1;
463 unsigned int norex64:1; 547 unsigned int norex64:1;
464 unsigned int rex64:1; 548 unsigned int rex64:1;
465 unsigned int ugh:1; 549 unsigned int ugh:1;
466 unsigned int vex:2; 550 unsigned int vex:2;
467 unsigned int vexvvvv:2; 551 unsigned int vexvvvv:2;
468 unsigned int vexw:2; 552 unsigned int vexw:2;
469 unsigned int vexopcode:3; 553 unsigned int vexopcode:3;
470 unsigned int vexsources:2; 554 unsigned int vexsources:2;
471 unsigned int veximmext:1; 555 unsigned int veximmext:1;
472 unsigned int vecsib:2; 556 unsigned int vecsib:2;
473 unsigned int sse2avx:1; 557 unsigned int sse2avx:1;
474 unsigned int noavx:1; 558 unsigned int noavx:1;
559 unsigned int evex:3;
560 unsigned int masking:2;
561 unsigned int vecesize:1;
562 unsigned int broadcast:3;
563 unsigned int staticrounding:1;
564 unsigned int sae:1;
565 unsigned int disp8memshift:3;
566 unsigned int nodefmask:1;
475 unsigned int oldgcc:1; 567 unsigned int oldgcc:1;
476 unsigned int attmnemonic:1; 568 unsigned int attmnemonic:1;
477 unsigned int attsyntax:1; 569 unsigned int attsyntax:1;
478 unsigned int intelsyntax:1; 570 unsigned int intelsyntax:1;
479 } i386_opcode_modifier; 571 } i386_opcode_modifier;
480 572
481 /* Position of operand_type bits. */ 573 /* Position of operand_type bits. */
482 574
483 enum 575 enum
484 { 576 {
485 /* 8bit register */ 577 /* 8bit register */
486 Reg8 = 0, 578 Reg8 = 0,
487 /* 16bit register */ 579 /* 16bit register */
488 Reg16, 580 Reg16,
489 /* 32bit register */ 581 /* 32bit register */
490 Reg32, 582 Reg32,
491 /* 64bit register */ 583 /* 64bit register */
492 Reg64, 584 Reg64,
493 /* Floating pointer stack register */ 585 /* Floating pointer stack register */
494 FloatReg, 586 FloatReg,
495 /* MMX register */ 587 /* MMX register */
496 RegMMX, 588 RegMMX,
497 /* SSE register */ 589 /* SSE register */
498 RegXMM, 590 RegXMM,
499 /* AVX registers */ 591 /* AVX registers */
500 RegYMM, 592 RegYMM,
593 /* AVX512 registers */
594 RegZMM,
595 /* Vector Mask registers */
596 RegMask,
501 /* Control register */ 597 /* Control register */
502 Control, 598 Control,
503 /* Debug register */ 599 /* Debug register */
504 Debug, 600 Debug,
505 /* Test register */ 601 /* Test register */
506 Test, 602 Test,
507 /* 2 bit segment register */ 603 /* 2 bit segment register */
508 SReg2, 604 SReg2,
509 /* 3 bit segment register */ 605 /* 3 bit segment register */
510 SReg3, 606 SReg3,
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 /* FWORD memory. 6 byte */ 666 /* FWORD memory. 6 byte */
571 Fword, 667 Fword,
572 /* QWORD memory. 8 byte */ 668 /* QWORD memory. 8 byte */
573 Qword, 669 Qword,
574 /* TBYTE memory. 10 byte */ 670 /* TBYTE memory. 10 byte */
575 Tbyte, 671 Tbyte,
576 /* XMMWORD memory. */ 672 /* XMMWORD memory. */
577 Xmmword, 673 Xmmword,
578 /* YMMWORD memory. */ 674 /* YMMWORD memory. */
579 Ymmword, 675 Ymmword,
676 /* ZMMWORD memory. */
677 Zmmword,
580 /* Unspecified memory size. */ 678 /* Unspecified memory size. */
581 Unspecified, 679 Unspecified,
582 /* Any memory size. */ 680 /* Any memory size. */
583 Anysize, 681 Anysize,
584 682
585 /* Vector 4 bit immediate. */ 683 /* Vector 4 bit immediate. */
586 Vec_Imm4, 684 Vec_Imm4,
587 685
686 /* Bound register. */
687 RegBND,
688
689 /* Vector 8bit displacement */
690 Vec_Disp8,
691
588 /* The last bitfield in i386_operand_type. */ 692 /* The last bitfield in i386_operand_type. */
589 OTMax 693 OTMax
590 }; 694 };
591 695
592 #define OTNumOfUints \ 696 #define OTNumOfUints \
593 (OTMax / sizeof (unsigned int) / CHAR_BIT + 1) 697 (OTMax / sizeof (unsigned int) / CHAR_BIT + 1)
594 #define OTNumOfBits \ 698 #define OTNumOfBits \
595 (OTNumOfUints * sizeof (unsigned int) * CHAR_BIT) 699 (OTNumOfUints * sizeof (unsigned int) * CHAR_BIT)
596 700
597 /* If you get a compiler error for zero width of the unused field, 701 /* If you get a compiler error for zero width of the unused field,
598 comment it out. */ 702 comment it out. */
599 #define OTUnused (OTMax + 1) 703 #define OTUnused (OTMax + 1)
600 704
601 typedef union i386_operand_type 705 typedef union i386_operand_type
602 { 706 {
603 struct 707 struct
604 { 708 {
605 unsigned int reg8:1; 709 unsigned int reg8:1;
606 unsigned int reg16:1; 710 unsigned int reg16:1;
607 unsigned int reg32:1; 711 unsigned int reg32:1;
608 unsigned int reg64:1; 712 unsigned int reg64:1;
609 unsigned int floatreg:1; 713 unsigned int floatreg:1;
610 unsigned int regmmx:1; 714 unsigned int regmmx:1;
611 unsigned int regxmm:1; 715 unsigned int regxmm:1;
612 unsigned int regymm:1; 716 unsigned int regymm:1;
717 unsigned int regzmm:1;
718 unsigned int regmask:1;
613 unsigned int control:1; 719 unsigned int control:1;
614 unsigned int debug:1; 720 unsigned int debug:1;
615 unsigned int test:1; 721 unsigned int test:1;
616 unsigned int sreg2:1; 722 unsigned int sreg2:1;
617 unsigned int sreg3:1; 723 unsigned int sreg3:1;
618 unsigned int imm1:1; 724 unsigned int imm1:1;
619 unsigned int imm8:1; 725 unsigned int imm8:1;
620 unsigned int imm8s:1; 726 unsigned int imm8s:1;
621 unsigned int imm16:1; 727 unsigned int imm16:1;
622 unsigned int imm32:1; 728 unsigned int imm32:1;
(...skipping 14 matching lines...) Expand all
637 unsigned int regmem:1; 743 unsigned int regmem:1;
638 unsigned int mem:1; 744 unsigned int mem:1;
639 unsigned int byte:1; 745 unsigned int byte:1;
640 unsigned int word:1; 746 unsigned int word:1;
641 unsigned int dword:1; 747 unsigned int dword:1;
642 unsigned int fword:1; 748 unsigned int fword:1;
643 unsigned int qword:1; 749 unsigned int qword:1;
644 unsigned int tbyte:1; 750 unsigned int tbyte:1;
645 unsigned int xmmword:1; 751 unsigned int xmmword:1;
646 unsigned int ymmword:1; 752 unsigned int ymmword:1;
753 unsigned int zmmword:1;
647 unsigned int unspecified:1; 754 unsigned int unspecified:1;
648 unsigned int anysize:1; 755 unsigned int anysize:1;
649 unsigned int vec_imm4:1; 756 unsigned int vec_imm4:1;
757 unsigned int regbnd:1;
758 unsigned int vec_disp8:1;
650 #ifdef OTUnused 759 #ifdef OTUnused
651 unsigned int unused:(OTNumOfBits - OTUnused); 760 unsigned int unused:(OTNumOfBits - OTUnused);
652 #endif 761 #endif
653 } bitfield; 762 } bitfield;
654 unsigned int array[OTNumOfUints]; 763 unsigned int array[OTNumOfUints];
655 } i386_operand_type; 764 } i386_operand_type;
656 765
657 typedef struct insn_template 766 typedef struct insn_template
658 { 767 {
659 /* instruction name sans width suffix ("mov" for movl insns) */ 768 /* instruction name sans width suffix ("mov" for movl insns) */
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 extern const insn_template i386_optab[]; 810 extern const insn_template i386_optab[];
702 811
703 /* these are for register name --> number & type hash lookup */ 812 /* these are for register name --> number & type hash lookup */
704 typedef struct 813 typedef struct
705 { 814 {
706 char *reg_name; 815 char *reg_name;
707 i386_operand_type reg_type; 816 i386_operand_type reg_type;
708 unsigned char reg_flags; 817 unsigned char reg_flags;
709 #define RegRex 0x1 /* Extended register. */ 818 #define RegRex 0x1 /* Extended register. */
710 #define RegRex64 0x2 /* Extended 8 bit register. */ 819 #define RegRex64 0x2 /* Extended 8 bit register. */
820 #define RegVRex 0x4 /* Extended vector register. */
711 unsigned char reg_num; 821 unsigned char reg_num;
712 #define RegRip ((unsigned char ) ~0) 822 #define RegRip ((unsigned char ) ~0)
713 #define RegEip (RegRip - 1) 823 #define RegEip (RegRip - 1)
714 /* EIZ and RIZ are fake index registers. */ 824 /* EIZ and RIZ are fake index registers. */
715 #define RegEiz (RegEip - 1) 825 #define RegEiz (RegEip - 1)
716 #define RegRiz (RegEiz - 1) 826 #define RegRiz (RegEiz - 1)
717 /* FLAT is a fake segment register (Intel mode). */ 827 /* FLAT is a fake segment register (Intel mode). */
718 #define RegFlat ((unsigned char) ~0) 828 #define RegFlat ((unsigned char) ~0)
719 signed char dw2_regnum[2]; 829 signed char dw2_regnum[2];
720 #define Dw2Inval (-1) 830 #define Dw2Inval (-1)
(...skipping 14 matching lines...) Expand all
735 unsigned int seg_prefix; 845 unsigned int seg_prefix;
736 } 846 }
737 seg_entry; 847 seg_entry;
738 848
739 extern const seg_entry cs; 849 extern const seg_entry cs;
740 extern const seg_entry ds; 850 extern const seg_entry ds;
741 extern const seg_entry ss; 851 extern const seg_entry ss;
742 extern const seg_entry es; 852 extern const seg_entry es;
743 extern const seg_entry fs; 853 extern const seg_entry fs;
744 extern const seg_entry gs; 854 extern const seg_entry gs;
OLDNEW
« no previous file with comments | « opcodes/i386-init.h ('k') | opcodes/i386-opc.tbl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698