}
/**
- * common_call_trampoline_inner:
+ * common_call_trampoline:
*
* The code to handle normal, virtual, and interface method calls and jumps, both
* from JITted and LLVM compiled code.
*/
static gpointer
-common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, MonoVTable *vt, gpointer *vtable_slot, MonoError *error)
+common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, MonoVTable *vt, gpointer *vtable_slot, MonoError *error)
{
gpointer addr, compiled_method;
gboolean generic_shared = FALSE;
return addr;
}
-static gpointer
-common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, MonoVTable *vt, gpointer *vtable_slot, MonoError *error)
-{
- gpointer res;
- MONO_PREPARE_RESET_BLOCKING;
- res = common_call_trampoline_inner (regs, code, m, vt, vtable_slot, error);
- MONO_FINISH_RESET_BLOCKING;
- return res;
-}
-
/**
* mono_magic_trampoline:
*
static gpointer
mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
MonoObject *this_arg;
MonoVTable *vt;
gpointer *vtable_slot;
gpointer
mono_generic_virtual_remoting_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8 *tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
MonoError error;
MonoGenericContext context = { NULL, NULL };
MonoMethod *imt_method, *declaring;
mono_aot_trampoline (mgreg_t *regs, guint8 *code, guint8 *token_info,
guint8* tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
MonoImage *image;
guint32 token;
MonoMethod *method = NULL;
mono_aot_plt_trampoline (mgreg_t *regs, guint8 *code, guint8 *aot_module,
guint8* tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
guint32 plt_info_offset = mono_aot_get_plt_info_offset (regs, code);
gpointer res;
MonoError error;
static gpointer
mono_rgctx_lazy_fetch_trampoline (mgreg_t *regs, guint8 *code, gpointer data, guint8 *tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
static gboolean inited = FALSE;
static int num_lookups = 0;
guint32 slot = GPOINTER_TO_UINT (data);
gpointer
mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
MonoDomain *domain = mono_domain_get ();
MonoDelegate *delegate;
MonoJitInfo *ji;
static gpointer
mono_handler_block_guard_trampoline (mgreg_t *regs, guint8 *code, gpointer *tramp_info, guint8* tramp)
{
+ MONO_REQ_GC_UNSAFE_MODE;
+
MonoContext ctx;
MonoException *exc;
MonoJitTlsData *jit_tls = (MonoJitTlsData *)mono_native_tls_get_value (mono_jit_tls_id);