From 53e52471fc3cb27b35a141a451f5da75adf7db8f Mon Sep 17 00:00:00 2001 From: zoltan Date: Sat, 7 Nov 2009 03:55:46 +0000 Subject: [PATCH] 2009-11-07 Zoltan Varga * mini-arm.c (mono_arch_allocate_vars): Align small vtypes to 4 bytes too since the code in the prolog requires it. git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mono@145635 e3ebcda4-bce8-0310-ba0a-eca2169e7518 --- mono/mini/ChangeLog | 5 +++++ mono/mini/mini-arm.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog index 03656dafd..0610e9712 100644 --- a/mono/mini/ChangeLog +++ b/mono/mini/ChangeLog @@ -1,3 +1,8 @@ +2009-11-07 Zoltan Varga + + * 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 * mini-arm.c debugger-agent.c: Android changes from Koushik K. Dutta diff --git a/mono/mini/mini-arm.c b/mono/mini/mini-arm.c index c9171ca71..df7b0d7fb 100644 --- a/mono/mini/mini-arm.c +++ b/mono/mini/mini-arm.c @@ -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; -- 2.11.4.GIT