[jit] Fix the passing of vtypes on arm in vararg calls. Fixes MonoTests.System.Reflec...
authorZoltan Varga <vargaz@gmail.com>
Tue, 11 Mar 2014 23:11:39 +0000 (19:11 -0400)
committerZoltan Varga <vargaz@gmail.com>
Tue, 11 Mar 2014 23:11:51 +0000 (19:11 -0400)
mono/mini/mini-arm.c

index fdc036ca0f2187a93c93c34e25c0e7e65e4318b7..991607b6edd0178519fc534e8f41bde4609c58bf 100644 (file)
@@ -1552,6 +1552,9 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                                gr += n_in_regs;
                                nwords -= n_in_regs;
                        }
+                       if (sig->call_convention == MONO_CALL_VARARG)
+                               /* This matches the alignment in mono_ArgIterator_IntGetNextArg () */
+                               stack_size = ALIGN_TO (stack_size, align);
                        ainfo->offset = stack_size;
                        /*g_print ("offset for arg %d at %d\n", n, stack_size);*/
                        stack_size += nwords * sizeof (gpointer);