Changeset 65772 in vbox for trunk/src/VBox
- Timestamp:
- Feb 13, 2017 3:28:22 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r65771 r65772 597 597 598 598 599 /** 600 * Group 7 jump table, memory variant. 601 */ 602 IEM_STATIC const PFNIEMOPRM g_apfnGroup7Mem[8] = 603 { 604 iemOp_Grp7_sgdt, 605 iemOp_Grp7_sidt, 606 iemOp_Grp7_lgdt, 607 iemOp_Grp7_lidt, 608 iemOp_Grp7_smsw, 609 iemOp_InvalidWithRM, 610 iemOp_Grp7_lmsw, 611 iemOp_Grp7_invlpg 612 }; 613 614 599 615 /** Opcode 0x0f 0x01. */ 600 616 FNIEMOP_DEF(iemOp_Grp7) 601 617 { 602 618 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 619 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 620 return FNIEMOP_CALL_1(g_apfnGroup7Mem[(bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK], bRm); 621 603 622 switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) 604 623 { 605 624 case 0: 606 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))607 return FNIEMOP_CALL_1(iemOp_Grp7_sgdt, bRm);608 625 switch (bRm & X86_MODRM_RM_MASK) 609 626 { … … 616 633 617 634 case 1: 618 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))619 return FNIEMOP_CALL_1(iemOp_Grp7_sidt, bRm);620 635 switch (bRm & X86_MODRM_RM_MASK) 621 636 { … … 626 641 627 642 case 2: 628 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))629 return FNIEMOP_CALL_1(iemOp_Grp7_lgdt, bRm);630 643 switch (bRm & X86_MODRM_RM_MASK) 631 644 { … … 636 649 637 650 case 3: 638 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))639 return FNIEMOP_CALL_1(iemOp_Grp7_lidt, bRm);640 651 switch (bRm & X86_MODRM_RM_MASK) 641 652 { … … 661 672 662 673 case 7: 663 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))664 return FNIEMOP_CALL_1(iemOp_Grp7_invlpg, bRm);665 674 switch (bRm & X86_MODRM_RM_MASK) 666 675 {
Note:
See TracChangeset
for help on using the changeset viewer.