Software Assurance Reference Dataset
via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jul 14 03:07:18 PDT 2014
On Sunday, 13 July 2014 at 23:35:46 UTC, Walter Bright wrote:
> On 7/13/2014 4:04 AM, "Marc Schütz" <schuetzm at gmx.net>" wrote:
>> On Sunday, 13 July 2014 at 03:25:08 UTC, Walter Bright wrote:
>>> On 7/11/2014 10:28 AM, deadalnix wrote:
>>>> The compiler can ensure that you hit at least every 4k or so.
>>>
>>> And it already does.
>>
>> Doesn't look so:
>>
>
>> int bar(int a) {
>> int[8000] b = void;
>> b[$-1] = a;
>> return b[$-1];
>> }
>
> On Win32:
>
> _D4foo53barFiZi comdat
> assume CS:_D4foo53barFiZi
> push EBP
> mov EBP,ESP
> mov EDX,7
> L8: sub ESP,01000h
> test [ESP],ESP
> dec EDX
> jne L8
> sub ESP,0D04h
> lea ECX,-8[EBP]
> mov [ECX],EAX
> mov EAX,-8[EBP]
> leave
> ret
>
> It doesn't do it on Linux because gcc doesn't do it. But the
> capability is in the back end, and it does it for alloca(), too.
Hmm... but this using DMD, not GDC. Or do you mean that DMD
doesn't do it, because GCC doesn't do it either? If so, what is
the reason for this? Why shouldn't this feature be enabled on
every platform?
More information about the Digitalmars-d
mailing list