summaryrefslogtreecommitdiff
path: root/src/jit/compiler.h
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2016-05-13 23:40:00 -0700
committerJan Kotas <jkotas@microsoft.com>2016-05-13 23:40:00 -0700
commit2e30f2e2cbea5b9a97e1ecc55009706606d5d13b (patch)
tree647ac619e122944894b230b5ea564925103342d4 /src/jit/compiler.h
parent04a5d3bafeaa5d67a2d91b9753b540c6ccd36931 (diff)
downloadcoreclr-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.h14
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()
{