diff options
Diffstat (limited to 'src/inc/corjit.h')
-rw-r--r-- | src/inc/corjit.h | 93 |
1 files changed, 2 insertions, 91 deletions
diff --git a/src/inc/corjit.h b/src/inc/corjit.h index 6d01b9f9d9..e6d067c0fe 100644 --- a/src/inc/corjit.h +++ b/src/inc/corjit.h @@ -72,86 +72,6 @@ enum CorJitResult CORJIT_RECOVERABLEERROR = MAKE_HRESULT(SEVERITY_ERROR,FACILITY_NULL, 5), }; - -#if COR_JIT_EE_VERSION <= 460 - -/* values for flags in compileMethod */ - -enum CorJitFlag -{ - CORJIT_FLG_SPEED_OPT = 0x00000001, - CORJIT_FLG_SIZE_OPT = 0x00000002, - CORJIT_FLG_DEBUG_CODE = 0x00000004, // generate "debuggable" code (no code-mangling optimizations) - CORJIT_FLG_DEBUG_EnC = 0x00000008, // We are in Edit-n-Continue mode - CORJIT_FLG_DEBUG_INFO = 0x00000010, // generate line and local-var info - CORJIT_FLG_MIN_OPT = 0x00000020, // disable all jit optimizations (not necesarily debuggable code) - CORJIT_FLG_GCPOLL_CALLS = 0x00000040, // Emit calls to JIT_POLLGC for thread suspension. - CORJIT_FLG_MCJIT_BACKGROUND = 0x00000080, // Calling from multicore JIT background thread, do not call JitComplete - - CORJIT_FLG_UNUSED1 = 0x00000100, - -#if defined(_TARGET_X86_) - - CORJIT_FLG_PINVOKE_RESTORE_ESP = 0x00000200, // Restore ESP after returning from inlined PInvoke - CORJIT_FLG_TARGET_P4 = 0x00000400, - CORJIT_FLG_USE_FCOMI = 0x00000800, // Generated code may use fcomi(p) instruction - CORJIT_FLG_USE_CMOV = 0x00001000, // Generated code may use cmov instruction - CORJIT_FLG_USE_SSE2 = 0x00002000, // Generated code may use SSE-2 instructions - -#elif defined(_TARGET_AMD64_) - - CORJIT_FLG_USE_SSE3_4 = 0x00000200, - CORJIT_FLG_USE_AVX = 0x00000400, - CORJIT_FLG_USE_AVX2 = 0x00000800, - CORJIT_FLG_USE_AVX_512 = 0x00001000, - CORJIT_FLG_FEATURE_SIMD = 0x00002000, - -#else // !defined(_TARGET_X86_) && !defined(_TARGET_AMD64_) - - CORJIT_FLG_UNUSED2 = 0x00000200, - CORJIT_FLG_UNUSED3 = 0x00000400, - CORJIT_FLG_UNUSED4 = 0x00000800, - CORJIT_FLG_UNUSED5 = 0x00001000, - CORJIT_FLG_UNUSED6 = 0x00002000, - -#endif // !defined(_TARGET_X86_) && !defined(_TARGET_AMD64_) - - CORJIT_FLG_MAKEFINALCODE = 0x00008000, // Use the final code generator, i.e., not the interpreter. - CORJIT_FLG_READYTORUN = 0x00010000, // Use version-resilient code generation - - CORJIT_FLG_PROF_ENTERLEAVE = 0x00020000, // Instrument prologues/epilogues - CORJIT_FLG_PROF_REJIT_NOPS = 0x00040000, // Insert NOPs to ensure code is re-jitable - CORJIT_FLG_PROF_NO_PINVOKE_INLINE - = 0x00080000, // Disables PInvoke inlining - CORJIT_FLG_SKIP_VERIFICATION = 0x00100000, // (lazy) skip verification - determined without doing a full resolve. See comment below - CORJIT_FLG_PREJIT = 0x00200000, // jit or prejit is the execution engine. - CORJIT_FLG_RELOC = 0x00400000, // Generate relocatable code - CORJIT_FLG_IMPORT_ONLY = 0x00800000, // Only import the function - CORJIT_FLG_IL_STUB = 0x01000000, // method is an IL stub - CORJIT_FLG_PROCSPLIT = 0x02000000, // JIT should separate code into hot and cold sections - CORJIT_FLG_BBINSTR = 0x04000000, // Collect basic block profile information - CORJIT_FLG_BBOPT = 0x08000000, // Optimize method based on profile information - CORJIT_FLG_FRAMED = 0x10000000, // All methods have an EBP frame - CORJIT_FLG_ALIGN_LOOPS = 0x20000000, // add NOPs before loops to align them at 16 byte boundaries - CORJIT_FLG_PUBLISH_SECRET_PARAM= 0x40000000, // JIT must place stub secret param into local 0. (used by IL stubs) - CORJIT_FLG_GCPOLL_INLINE = 0x80000000, // JIT must inline calls to GCPoll when possible -}; - -enum CorJitFlag2 -{ - CORJIT_FLG2_SAMPLING_JIT_BACKGROUND = 0x00000001, // JIT is being invoked as a result of stack sampling for hot methods in the background -}; - -struct CORJIT_FLAGS -{ - unsigned corJitFlags; // Values are from CorJitFlag - unsigned corJitFlags2; // Values are from CorJitFlag2 -}; - -#endif // COR_JIT_EE_VERSION <= 460 - -#if COR_JIT_EE_VERSION > 460 - class CORJIT_FLAGS { public: @@ -226,6 +146,8 @@ public: CORJIT_FLAG_USE_PINVOKE_HELPERS = 36, // The JIT should use the PINVOKE_{BEGIN,END} helpers instead of emitting inline transitions CORJIT_FLAG_REVERSE_PINVOKE = 37, // The JIT should insert REVERSE_PINVOKE_{ENTER,EXIT} helpers into method prolog/epilog CORJIT_FLAG_DESKTOP_QUIRKS = 38, // The JIT should generate desktop-quirk-compatible code + CORJIT_FLAG_TIER0 = 39, // This is the initial tier for tiered compilation which should generate code as quickly as possible + CORJIT_FLAG_TIER1 = 40, // This is the final tier (for now) for tiered compilation which should generate high quality code }; CORJIT_FLAGS() @@ -292,7 +214,6 @@ private: unsigned __int64 corJitFlags; }; -#endif // COR_JIT_EE_VERSION > 460 /***************************************************************************** Here is how CORJIT_FLAG_SKIP_VERIFICATION should be interepreted. @@ -450,14 +371,10 @@ enum CheckedWriteBarrierKinds { CWBKind_AddrOfLocal, // Store through the address of a local (arguably a bug that this happens at all). }; -#if COR_JIT_EE_VERSION > 460 - #include "corjithost.h" extern "C" void __stdcall jitStartup(ICorJitHost* host); -#endif - class ICorJitCompiler; class ICorJitInfo; struct IEEMemoryManager; @@ -515,11 +432,7 @@ public: // When the EE loads the System.Numerics.Vectors assembly, it asks the JIT what length (in bytes) of // SIMD vector it supports as an intrinsic type. Zero means that the JIT does not support SIMD // intrinsics, so the EE should use the default size (i.e. the size of the IL implementation). -#if COR_JIT_EE_VERSION > 460 virtual unsigned getMaxIntrinsicSIMDVectorLength(CORJIT_FLAGS cpuCompileFlags) { return 0; } -#else - virtual unsigned getMaxIntrinsicSIMDVectorLength(DWORD cpuCompileFlags) { return 0; } -#endif // IL obfuscators sometimes interpose on the EE-JIT interface. This function allows the VM to // tell the JIT to use a particular ICorJitCompiler to implement the methods of this interface, @@ -702,7 +615,6 @@ public: // virtual DWORD getExpectedTargetArchitecture() = 0; -#if COR_JIT_EE_VERSION > 460 // Fetches extended flags for a particular compilation instance. Returns // the number of bytes written to the provided buffer. virtual DWORD getJitFlags( @@ -710,7 +622,6 @@ public: DWORD sizeInBytes /* IN: The size of the buffer. Note that this is effectively a version number for the CORJIT_FLAGS value. */ ) = 0; -#endif }; /**********************************************************************************/ |