-/*
- * tramp-arm64-gsharedvt.c: gsharedvt support code for arm64
+/**
+ * \file
+ * gsharedvt support code for arm64
*
* Authors:
* Zoltan Varga <vargaz@gmail.com>
/*
* GSHAREDVT
*/
-#ifdef MONO_ARCH_GSHARED_SUPPORTED
+#ifdef MONO_ARCH_GSHAREDVT_SUPPORTED
/*
* mono_arch_get_gsharedvt_arg_trampoline:
case GSHAREDVT_ARG_BYREF_TO_BYREF:
g_assert_not_reached ();
break;
+ case GSHAREDVT_ARG_BYVAL_TO_BYREF:
+ src_slot = src & 0x3f;
+ src_ptr = (guint8*)(caller + src_slot) + src_offset;
+ callee [dst] = src_ptr;
+ break;
default:
NOT_IMPLEMENTED;
break;
}
+ if (arg_marshal == GSHAREDVT_ARG_BYVAL_TO_BYREF)
+ continue;
+
switch (arg_size) {
case GSHAREDVT_ARG_SIZE_I1:
*(gint8*)dst_ptr = *(gint8*)src_ptr;
#endif
-#else
-
-gpointer
-mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
-{
- if (info)
- *info = NULL;
- return NULL;
-}
-
-gpointer
-mono_arch_get_gsharedvt_arg_trampoline (MonoDomain *domain, gpointer arg, gpointer addr)
-{
- g_assert_not_reached ();
- return NULL;
-}
-
-#endif /* MONO_ARCH_GSHARED_SUPPORTED */
\ No newline at end of file
+#endif /* MONO_ARCH_GSHAREDVT_SUPPORTED */