[dmd-beta] dmd 1.070 and 2.055 beta
Walter Bright
walter at digitalmars.com
Tue Sep 6 13:45:25 PDT 2011
On 9/6/2011 12:13 PM, Rainer Schuetze wrote:
>
> I can reproduce the issue on Win7 64, but not on XP. I have debugged it a
> little until I noticed that the generated code for TLS access seems broken:
>
> dmd 2.054 generated this code for the append operation
>
> push 1
> 1000207D mov ecx,dword ptr [__tls_index (1006BF98h)]
> 10002083 mov edx,dword ptr fs:[2Ch]
> 1000208A mov ebx,dword ptr [edx+ecx*4]
> 1000208D lea esi,[ebx+4]
> 10002093 push esi
> 10002094 mov eax,offset TypeInfo_Ai at __init (1005E9A0h)
> 10002099 push eax
> 1000209A call __d_arrayappendcT (10004D68h)
>
> while the beta generates
>
> push 1
> 10002076 mov ecx,dword ptr fs:[2Ch]
> 1000207D mov edx,dword ptr [ecx]
> 1000207F lea ebx,[edx+4]
> 10002085 push ebx
> 10002086 mov esi,offset TypeInfo_Ai at __init (10067A90h)
> 1000208B push esi
> 1000208C call __d_arrayappendcT (10004F9Ch)
>
> so it completely ignores the tls_index. I guess it works on XP because there
> are less DLLs that use TLS, so the DLLs index ends up as 0.
>
Very interesting. Can you provide the source code for that?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/dmd-beta/attachments/20110906/0a44bdff/attachment.html>
More information about the dmd-beta
mailing list