Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mono/mini/mini-arm64-gsharedvt.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mono/mini/mini-arm64-gsharedvt.c b/mono/mini/mini-arm64-gsharedvt.c
index 67689024464..f3a0653a03a 100644
--- a/mono/mini/mini-arm64-gsharedvt.c
+++ b/mono/mini/mini-arm64-gsharedvt.c
@@ -229,7 +229,7 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
}
if (ainfo2->storage == ArgVtypeByRef && ainfo2->gsharedvt) {
/* Pass the address of the first src slot in a reg */
- if (ainfo->storage != ArgVtypeByRef) {
+ if (ainfo->storage != ArgVtypeByRef && ainfo->storage != ArgVtypeByRefOnStack) {
if (ainfo->storage == ArgHFA && ainfo->esize == 4) {
arg_marshal = GSHAREDVT_ARG_BYVAL_TO_BYREF_HFAR4;
g_assert (src [0] < 64);
@@ -244,7 +244,7 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
dst [0] = map_reg (ainfo2->reg);
} else if (ainfo2->storage == ArgVtypeByRefOnStack && ainfo2->gsharedvt) {
/* Pass the address of the first src slot in a stack slot */
- if (ainfo->storage != ArgVtypeByRef)
+ if (ainfo->storage != ArgVtypeByRef && ainfo->storage != ArgVtypeByRefOnStack)
arg_marshal = GSHAREDVT_ARG_BYVAL_TO_BYREF;
ndst = 1;
dst = g_new0 (int, 1);