2009-11-07 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Sat, 7 Nov 2009 03:55:46 +0000 (03:55 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sat, 7 Nov 2009 03:55:46 +0000 (03:55 -0000)
* mini-arm.c (mono_arch_allocate_vars): Align small vtypes to 4 bytes too since
the code in the prolog requires it.

svn path=/trunk/mono/; revision=145635

mono/mini/ChangeLog
mono/mini/mini-arm.c

index 03656dafd7d97cdbce82ba74b7d3336ba7194452..0610e9712eec3af09c2477162603150e5e767e59 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.c (mono_arch_allocate_vars): Align small vtypes to 4 bytes too since
+       the code in the prolog requires it.
+
 2009-11-06  Zoltan Varga  <vargaz@gmail.com>
 
        * mini-arm.c debugger-agent.c: Android changes from Koushik K. Dutta
index c9171ca71ca6152ea6b61373c6e2060e8c69a702..df7b0d7fb0cd33f3c678a3a358a101a2f5992558 100644 (file)
@@ -1160,6 +1160,9 @@ mono_arch_allocate_vars (MonoCompile *cfg)
                         */
                        if (align < 4 && size >= 4)
                                align = 4;
+                       /* The code in the prolog () stores words when storing vtypes received in a register */
+                       if (MONO_TYPE_ISSTRUCT (sig->params [i]))
+                               align = 4;
                        offset += align - 1;
                        offset &= ~(align - 1);
                        inst->inst_offset = offset;