call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_GENERIC_CLASS_INIT, NULL, helper_sig_generic_class_init_trampoline_llvm, &vtable_arg);
else
call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_GENERIC_CLASS_INIT, NULL, helper_sig_generic_class_init_trampoline, &vtable_arg);
-#ifdef MONO_ARCH_VTABLE_REG
mono_call_inst_add_outarg_reg (cfg, call, vtable_arg->dreg, MONO_ARCH_VTABLE_REG, FALSE);
cfg->uses_vtable_reg = TRUE;
-#else
- NOT_IMPLEMENTED;
-#endif
}
static void
}
/* STATIC CASE */
-
- /*
- * We can only support shared generic static
- * field access on architectures where the
- * trampoline code has been extended to handle
- * the generic class init.
- */
-#ifndef MONO_ARCH_VTABLE_REG
- GENERIC_SHARING_FAILURE (op);
-#endif
-
context_used = mini_class_check_context_used (cfg, klass);
ftype = mono_field_get_type (field);
static gpointer
mono_rgctx_lazy_fetch_trampoline (mgreg_t *regs, guint8 *code, gpointer data, guint8 *tramp)
{
-#ifdef MONO_ARCH_VTABLE_REG
static gboolean inited = FALSE;
static int num_lookups = 0;
guint32 slot = GPOINTER_TO_UINT (data);
return mono_method_fill_runtime_generic_context (arg, code, index);
else
return mono_class_fill_runtime_generic_context (arg, code, index);
-#else
- g_assert_not_reached ();
-#endif
}
void
gpointer
mono_create_generic_class_init_trampoline (void)
{
-#ifdef MONO_ARCH_VTABLE_REG
static gpointer code;
MonoTrampInfo *info;
mono_trampolines_unlock ();
return code;
-#else
- g_assert_not_reached ();
-#endif
}
gpointer
gpointer
mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info, gboolean aot)
{
-#ifdef MONO_ARCH_VTABLE_REG
guint8 *tramp;
guint8 *code, *buf;
guint8 **rgctx_null_jumps;
g_free (name);
return buf;
-#else
- g_assert_not_reached ();
-#endif
}
gpointer
gpointer
mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info, gboolean aot)
{
-#ifdef MONO_ARCH_VTABLE_REG
guint8 *tramp;
guint8 *code, *buf;
guint8 **rgctx_null_jumps;
g_free (name);
return(buf);
-#else
- g_assert_not_reached ();
-#endif
- return(NULL);
}
/*========================= End of Function ========================*/