Changeset 66336 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Mar 29, 2017 2:54:09 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114270
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
r66159 r66336 572 572 573 573 574 /** Invalid with RM byte where intel requires 8-byte immediate. 575 * Both AMD and Intel also needs SIB and displacement according to bRm. */ 576 FNIEMOPRM_DEF(iemOp_InvalidWithRMAllNeedImm8) 577 { 578 IEMOP_MNEMONIC(InvalidWithRMAllNeedImm8, "InvalidWithRMAllNeedImm8"); 579 #ifndef TST_IEM_CHECK_MC 580 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 581 { 582 RTGCPTR GCPtrEff; 583 VBOXSTRICTRC rcStrict = iemOpHlpCalcRmEffAddr(pVCpu, bRm, 0, &GCPtrEff); 584 if (rcStrict != VINF_SUCCESS) 585 return rcStrict; 586 } 587 #endif 588 uint8_t bImm8; IEM_OPCODE_GET_NEXT_U8(&bImm8); RT_NOREF(bRm); 589 IEMOP_HLP_DONE_DECODING(); 590 return IEMOP_RAISE_INVALID_OPCODE(); 591 } 592 593 574 594 /** Invalid opcode where intel requires Mod R/M sequence. */ 575 595 FNIEMOP_DEF(iemOp_InvalidNeedRM) -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66334 r66336 6583 6583 { 6584 6584 case 0: case 1: case 2: case 3: 6585 return IEMOP_RAISE_INVALID_OPCODE(); 6585 /* Both AMD and Intel want full modr/m decoding and imm8. */ 6586 return FNIEMOP_CALL_1(iemOp_InvalidWithRMAllNeedImm8, bRm); 6586 6587 case 4: pImpl = &g_iemAImpl_bt; IEMOP_MNEMONIC(bt_Ev_Ib, "bt Ev,Ib"); break; 6587 6588 case 5: pImpl = &g_iemAImpl_bts; IEMOP_MNEMONIC(bts_Ev_Ib, "bts Ev,Ib"); break; … … 6743 6744 } 6744 6745 } 6745 6746 6746 } 6747 6747
Note:
See TracChangeset
for help on using the changeset viewer.