summaryrefslogtreecommitdiff
path: root/src/inc/jithelpers.h
diff options
context:
space:
mode:
authorPat Gavlin <pagavlin@microsoft.com>2016-01-20 13:44:43 -0800
committerPat Gavlin <pagavlin@microsoft.com>2016-01-22 16:24:23 -0800
commit626e050f03bff854793798d7abc496621c05ce02 (patch)
treed670dbd840822dfc36cf69a3e7f6ec21ad6ebf64 /src/inc/jithelpers.h
parent0f14640db10489f70f522436a764c4788db904ae (diff)
downloadcoreclr-626e050f03bff854793798d7abc496621c05ce02.tar.gz
coreclr-626e050f03bff854793798d7abc496621c05ce02.tar.bz2
coreclr-626e050f03bff854793798d7abc496621c05ce02.zip
Generate P/Invoke transitions for CoreRT.
This change adds support for CoreRT-style P/Invoke transitions to RyuJIT. Instead of the usual inlined transition code, these transitions are made up of calls to two new JIT helpers: PInvokeTransitionFrame frame; // opaque local CORINFO_HELP_INIT_PINVOKE_FRAME(&frame); ... CORINFO_HELP_JIT_PINVOKE_BEGIN(&frame); target(...); CORINFO_HELP_JIT_PINVOKE_END(&frame); ... The preemptive mode constraints apply between calls to JIT_PINVOKE_BEGIN and JIT_PINVOKE_END: no managed references may be live only in registers and managed references may not be manipulated.
Diffstat (limited to 'src/inc/jithelpers.h')
-rw-r--r--src/inc/jithelpers.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/inc/jithelpers.h b/src/inc/jithelpers.h
index bd3ad544fb..eac9c45151 100644
--- a/src/inc/jithelpers.h
+++ b/src/inc/jithelpers.h
@@ -403,6 +403,9 @@
#endif // COR_JIT_EE_VERSION
+ JITHELPER1(CORINFO_HELP_JIT_PINVOKE_BEGIN, NULL, CORINFO_HELP_SIG_UNDEF, MDIL_HELP_UNDEF)
+ JITHELPER1(CORINFO_HELP_JIT_PINVOKE_END, NULL, CORINFO_HELP_SIG_UNDEF, MDIL_HELP_UNDEF)
+
#undef JITHELPER1
#undef DYNAMICJITHELPER1
#undef JITHELPER