diff options
Diffstat (limited to 'src/jit/ee_il_dll.cpp')
-rw-r--r--[-rwxr-xr-x] | src/jit/ee_il_dll.cpp | 53 |
1 files changed, 34 insertions, 19 deletions
diff --git a/src/jit/ee_il_dll.cpp b/src/jit/ee_il_dll.cpp index 527244221e..dcadaa9453 100755..100644 --- a/src/jit/ee_il_dll.cpp +++ b/src/jit/ee_il_dll.cpp @@ -284,21 +284,17 @@ CorJitResult CILJit::compileMethod( return g_realJitCompiler->compileMethod(compHnd, methodInfo, flags, entryAddress, nativeSizeOfCode); } - CORJIT_FLAGS jitFlags = {0}; + JitFlags jitFlags; - DWORD jitFlagsSize = 0; #if COR_JIT_EE_VERSION > 460 - if (flags == CORJIT_FLG_CALL_GETJITFLAGS) - { - jitFlagsSize = compHnd->getJitFlags(&jitFlags, sizeof(jitFlags)); - } -#endif - - assert(jitFlagsSize <= sizeof(jitFlags)); - if (jitFlagsSize == 0) - { - jitFlags.corJitFlags = flags; - } + assert(flags == CORJIT_FLAGS::CORJIT_FLAG_CALL_GETJITFLAGS); + CORJIT_FLAGS corJitFlags; + DWORD jitFlagsSize = compHnd->getJitFlags(&corJitFlags, sizeof(corJitFlags)); + assert(jitFlagsSize == sizeof(corJitFlags)); + jitFlags.SetFromFlags(corJitFlags); +#else // COR_JIT_EE_VERSION <= 460 + jitFlags.SetFromOldFlags(flags, 0); +#endif // COR_JIT_EE_VERSION <= 460 int result; void* methodCodePtr = nullptr; @@ -385,17 +381,31 @@ void CILJit::getVersionIdentifier(GUID* versionIdentifier) /***************************************************************************** * Determine the maximum length of SIMD vector supported by this JIT. */ + +#if COR_JIT_EE_VERSION > 460 +unsigned CILJit::getMaxIntrinsicSIMDVectorLength(CORJIT_FLAGS cpuCompileFlags) +#else unsigned CILJit::getMaxIntrinsicSIMDVectorLength(DWORD cpuCompileFlags) +#endif { if (g_realJitCompiler != nullptr) { return g_realJitCompiler->getMaxIntrinsicSIMDVectorLength(cpuCompileFlags); } -#ifdef _TARGET_AMD64_ + JitFlags jitFlags; + +#if COR_JIT_EE_VERSION > 460 + jitFlags.SetFromFlags(cpuCompileFlags); +#else // COR_JIT_EE_VERSION <= 460 + jitFlags.SetFromOldFlags(cpuCompileFlags, 0); +#endif // COR_JIT_EE_VERSION <= 460 + +#ifdef FEATURE_SIMD +#ifdef _TARGET_XARCH_ #ifdef FEATURE_AVX_SUPPORT - if (((cpuCompileFlags & CORJIT_FLG_PREJIT) == 0) && ((cpuCompileFlags & CORJIT_FLG_FEATURE_SIMD) != 0) && - ((cpuCompileFlags & CORJIT_FLG_USE_AVX2) != 0)) + if (!jitFlags.IsSet(JitFlags::JIT_FLAG_PREJIT) && jitFlags.IsSet(JitFlags::JIT_FLAG_FEATURE_SIMD) && + jitFlags.IsSet(JitFlags::JIT_FLAG_USE_AVX2)) { if (JitConfig.EnableAVX() != 0) { @@ -404,9 +414,10 @@ unsigned CILJit::getMaxIntrinsicSIMDVectorLength(DWORD cpuCompileFlags) } #endif // FEATURE_AVX_SUPPORT return 16; -#else // !_TARGET_AMD64_ +#endif // _TARGET_XARCH_ +#else // !FEATURE_SIMD return 0; -#endif // !_TARGET_AMD64_ +#endif // !FEATURE_SIMD } void CILJit::setRealJit(ICorJitCompiler* realJitCompiler) @@ -1378,7 +1389,7 @@ bool Compiler::eeRunWithErrorTrapImp(void (*function)(void*), void* param) * Utility functions */ -#if defined(DEBUG) || defined(FEATURE_JIT_METHOD_PERF) || defined(FEATURE_SIMD) +#if defined(DEBUG) || defined(FEATURE_JIT_METHOD_PERF) || defined(FEATURE_SIMD) || defined(FEATURE_TRACELOGGING) /*****************************************************************************/ @@ -1526,6 +1537,9 @@ const char* Compiler::eeGetClassName(CORINFO_CLASS_HANDLE clsHnd) const wchar_t* Compiler::eeGetCPString(size_t strHandle) { +#ifdef FEATURE_PAL + return nullptr; +#else char buff[512 + sizeof(CORINFO_String)]; // make this bulletproof, so it works even if we are wrong. @@ -1547,6 +1561,7 @@ const wchar_t* Compiler::eeGetCPString(size_t strHandle) } return (asString->chars); +#endif // FEATURE_PAL } #endif // DEBUG |