2012/6/25 Tristan Gingold <ging...@adacore.com>:
>
> On Jun 18, 2012, at 4:28 PM, Kai Tietz wrote:
>
>> 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.
>
> I suppose this is checked by large-frame.c.  But it requires lp64; what is 
> the correct writing to enable this test only on 64bit mode ?
>
> Tristan.

You can check for Windows 64-bit targets by 'llp64'.  Check is in
target-supports.exp

Kai

Reply via email to