Hello Tristan,

patch works for me, too. Just one nit about the patch.

2012/6/18 Tristan Gingold <ging...@adacore.com>:
> @@ -8558,6 +8558,11 @@ ix86_frame_pointer_required (void)
>   if (TARGET_32BIT_MS_ABI && cfun->calls_setjmp)
>     return true;
>
> +  /* Win64 SEH, very large frames need a frame-pointer as maximum stack
> +     allocation is 4GB (add a safety guard for saved registers).  */
> +  if (TARGET_64BIT_MS_ABI && get_frame_size () + 4096 > SEH_MAX_FRAME_SIZE)
> +    return true;
Where does this magic 4096 comes from?  Is it intended to be the
page-size, or is it meant to be the maximum stack-frame consumed by
prologue?  I would suggest to use here instead:
+  if (TARGET_64BIT_MS_ABI && get_frame_size () > (SEH_MAX_FRAME_SIZE - 4096))
+    return true;

Additional a testcase for big-stackframe would be interesting.  You
won't need to make here a execution test, a assembler-scan would be
enough.

Reply via email to