On 18 September 2012 07:04, Michael Hope <michael.h...@linaro.org> wrote:
> On 17 September 2012 19:49, Zhenqiang Chen <zhenqiang.c...@linaro.org> wrote:
>> Summary
>> * Workaround the unwind issue for shrink-wrap
>> * Verify Linaro tickets.
>>
>> Details:
>> 1. Debugging the failed cases for shrink-wrap. To workaround the
>> unwind issue, update arm_expand_epilogue to generate return not
>> simple_return when sp is changed.
>
> Hmm.  An interesting case for shrinkwrap is:
>
> int foo(void *p) {
>   char big-on-stack-object[543234];
>
>   if (p == NULL) return -1;
>
>   lots-of-code-that-causes-spills-and calls()
> }
>
> as shortcutting the prologue is where we get the saving.  Does the
> prologue normally touch SP, or is this for alloca() style functions
> only?

For spilling and alloca() style functions, prologue will touch SP.

For a local array, prologue will also touch SP if accessing the array
element. My logs show, gcc will generate code like

   sub     sp, sp, #size of the array
   ...
   ldr     r3, [sp, offset]


Thanks!
-Zhenqiang

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to