Changeset 55229 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
- Timestamp:
- Apr 14, 2015 6:35:43 AM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 99536
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
r53423 r55229 1308 1308 { 1309 1309 /* AMD prefetch group, Intel implements this as NOP Ev (and so do we). */ 1310 if (!IEM_IS_AMD_CPUID_FEATURES_ANY_PRESENT(X86_CPUID_EXT_FEATURE_EDX_LONG_MODE | X86_CPUID_AMD_FEATURE_EDX_3DNOW, 1311 X86_CPUID_AMD_FEATURE_ECX_3DNOWPRF)) 1310 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->f3DNowPrefetch) 1312 1311 { 1313 1312 IEMOP_MNEMONIC("GrpP"); … … 1426 1425 FNIEMOP_DEF(iemOp_3Dnow) 1427 1426 { 1428 if (!IEM_ IS_AMD_CPUID_FEATURE_PRESENT_EDX(X86_CPUID_AMD_FEATURE_EDX_3DNOW))1427 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->f3DNow) 1429 1428 { 1430 1429 IEMOP_MNEMONIC("3Dnow"); … … 1556 1555 { 1557 1556 /* The lock prefix can be used to encode CR8 accesses on some CPUs. */ 1558 if (!IEM_ IS_AMD_CPUID_FEATURE_PRESENT_ECX(X86_CPUID_AMD_FEATURE_ECX_CR8L))1557 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fMovCr8In32Bit) 1559 1558 return IEMOP_RAISE_INVALID_OPCODE(); /* #UD takes precedence over #GP(), see test. */ 1560 1559 iCrReg |= 8; … … 1602 1601 { 1603 1602 /* The lock prefix can be used to encode CR8 accesses on some CPUs. */ 1604 if (!IEM_ IS_AMD_CPUID_FEATURE_PRESENT_ECX(X86_CPUID_AMD_FEATURE_ECX_CR8L))1603 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fMovCr8In32Bit) 1605 1604 return IEMOP_RAISE_INVALID_OPCODE(); /* #UD takes precedence over #GP(), see test. */ 1606 1605 iCrReg |= 8; … … 4924 4923 { 4925 4924 IEMOP_MNEMONIC("fxsave m512"); 4926 if (!IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX(X86_CPUID_FEATURE_EDX_FXSR))4925 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fFxSaveRstor) 4927 4926 return IEMOP_RAISE_INVALID_OPCODE(); 4928 4927 … … 4944 4943 { 4945 4944 IEMOP_MNEMONIC("fxrstor m512"); 4946 if (!IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX(X86_CPUID_FEATURE_EDX_FXSR))4945 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fFxSaveRstor) 4947 4946 return IEMOP_RAISE_INVALID_OPCODE(); 4948 4947 … … 4984 4983 IEMOP_MNEMONIC("lfence"); 4985 4984 IEMOP_HLP_NO_LOCK_PREFIX(); 4986 if (!IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX(X86_CPUID_FEATURE_EDX_SSE2))4985 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fSse2) 4987 4986 return IEMOP_RAISE_INVALID_OPCODE(); 4988 4987 4989 4988 IEM_MC_BEGIN(0, 0); 4990 if (IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX_ON_HOST(X86_CPUID_FEATURE_EDX_SSE2))4989 if (IEM_GET_HOST_CPU_FEATURES(pIemCpu)->fSse2) 4991 4990 IEM_MC_CALL_VOID_AIMPL_0(iemAImpl_lfence); 4992 4991 else … … 5003 5002 IEMOP_MNEMONIC("mfence"); 5004 5003 IEMOP_HLP_NO_LOCK_PREFIX(); 5005 if (!IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX(X86_CPUID_FEATURE_EDX_SSE2))5004 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fSse2) 5006 5005 return IEMOP_RAISE_INVALID_OPCODE(); 5007 5006 5008 5007 IEM_MC_BEGIN(0, 0); 5009 if (IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX_ON_HOST(X86_CPUID_FEATURE_EDX_SSE2))5008 if (IEM_GET_HOST_CPU_FEATURES(pIemCpu)->fSse2) 5010 5009 IEM_MC_CALL_VOID_AIMPL_0(iemAImpl_mfence); 5011 5010 else … … 5022 5021 IEMOP_MNEMONIC("sfence"); 5023 5022 IEMOP_HLP_NO_LOCK_PREFIX(); 5024 if (!IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX(X86_CPUID_FEATURE_EDX_SSE2))5023 if (!IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fSse2) 5025 5024 return IEMOP_RAISE_INVALID_OPCODE(); 5026 5025 5027 5026 IEM_MC_BEGIN(0, 0); 5028 if (IEM_ IS_INTEL_CPUID_FEATURE_PRESENT_EDX_ON_HOST(X86_CPUID_FEATURE_EDX_SSE2))5027 if (IEM_GET_HOST_CPU_FEATURES(pIemCpu)->fSse2) 5029 5028 IEM_MC_CALL_VOID_AIMPL_0(iemAImpl_sfence); 5030 5029 else … … 10551 10550 IEMOP_HLP_NO_LOCK_PREFIX(); 10552 10551 if ( pIemCpu->enmCpuMode == IEMMODE_64BIT 10553 && !IEM_ IS_AMD_CPUID_FEATURE_PRESENT_ECX(X86_CPUID_EXT_FEATURE_ECX_LAHF_SAHF))10552 && !IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fLahfSahf) 10554 10553 return IEMOP_RAISE_INVALID_OPCODE(); 10555 10554 IEM_MC_BEGIN(0, 2); … … 10575 10574 IEMOP_HLP_NO_LOCK_PREFIX(); 10576 10575 if ( pIemCpu->enmCpuMode == IEMMODE_64BIT 10577 && !IEM_ IS_AMD_CPUID_FEATURE_PRESENT_ECX(X86_CPUID_EXT_FEATURE_ECX_LAHF_SAHF))10576 && !IEM_GET_GUEST_CPU_FEATURES(pIemCpu)->fLahfSahf) 10578 10577 return IEMOP_RAISE_INVALID_OPCODE(); 10579 10578 IEM_MC_BEGIN(0, 1);
Note:
See TracChangeset
for help on using the changeset viewer.