diff options
author | Jan Kotas <jkotas@microsoft.com> | 2016-05-13 23:40:00 -0700 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2016-05-13 23:40:00 -0700 |
commit | 2e30f2e2cbea5b9a97e1ecc55009706606d5d13b (patch) | |
tree | 647ac619e122944894b230b5ea564925103342d4 /src/jit/compiler.h | |
parent | 04a5d3bafeaa5d67a2d91b9753b540c6ccd36931 (diff) | |
download | coreclr-2e30f2e2cbea5b9a97e1ecc55009706606d5d13b.tar.gz coreclr-2e30f2e2cbea5b9a97e1ecc55009706606d5d13b.tar.bz2 coreclr-2e30f2e2cbea5b9a97e1ecc55009706606d5d13b.zip |
Add support for reverse PInvoke callouts to the JIT (#4952)
Diffstat (limited to 'src/jit/compiler.h')
-rw-r--r-- | src/jit/compiler.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/jit/compiler.h b/src/jit/compiler.h index 88c5965b49..50c90b669c 100644 --- a/src/jit/compiler.h +++ b/src/jit/compiler.h @@ -2220,6 +2220,7 @@ public : #if INLINE_NDIRECT unsigned lvaInlinedPInvokeFrameVar; // variable representing the InlinedCallFrame + unsigned lvaReversePInvokeFrameVar; // variable representing the reverse PInvoke frame #if FEATURE_FIXED_OUT_ARGS unsigned lvaPInvokeFrameRegSaveVar; // variable representing the RegSave for PInvoke inlining. #endif @@ -3413,6 +3414,8 @@ public : #endif // !_TARGET_X86_ + void fgAddReversePInvokeEnterExit(); + bool fgMoreThanOneReturnBlock(); // The number of separate return points in the method. @@ -7462,6 +7465,17 @@ public : #endif } + // true if we should use insert the REVERSE_PINVOKE_{ENTER,EXIT} helpers in the method + // prolog/epilog + inline bool IsReversePInvoke() + { +#if COR_JIT_EE_VERSION > 460 + return (jitFlags->corJitFlags2 & CORJIT_FLG2_REVERSE_PINVOKE) != 0; +#else + return false; +#endif + } + // true if we must generate compatible code with Jit64 quirks inline bool IsJit64Compat() { |