<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 06.09.2011 22:45, Walter Bright wrote:
    <blockquote cite="mid:4E668665.6050704@digitalmars.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <title></title>
      <br>
      <br>
      On 9/6/2011 12:13 PM, Rainer Schuetze wrote:
      <blockquote cite="mid:4E6670DC.1020106@gmx.de" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        <br>
        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:<br>
        <br>
        dmd 2.054 generated this code for the append operation<br>
        <br>
         push        1  <br>
        1000207D  mov         ecx,dword ptr [__tls_index (1006BF98h)]  <br>
        10002083  mov         edx,dword ptr fs:[2Ch]  <br>
        1000208A  mov         ebx,dword ptr [edx+ecx*4]  <br>
        1000208D  lea         esi,[ebx+4]  <br>
        10002093  push        esi  <br>
        10002094  mov         eax,offset TypeInfo_Ai@__init (1005E9A0h) 
        <br>
        10002099  push        eax  <br>
        1000209A  call        __d_arrayappendcT (10004D68h)  <br>
        <br>
        while the beta generates<br>
        <br>
        push        1  <br>
        10002076  mov         ecx,dword ptr fs:[2Ch]  <br>
        1000207D  mov         edx,dword ptr [ecx]  <br>
        1000207F  lea         ebx,[edx+4]  <br>
        10002085  push        ebx  <br>
        10002086  mov         esi,offset TypeInfo_Ai@__init (10067A90h) 
        <br>
        1000208B  push        esi  <br>
        1000208C  call        __d_arrayappendcT (10004F9Ch)  <br>
        <br>
        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.<br>
        <br>
      </blockquote>
      <br>
      Very interesting. Can you provide the source code for that?<br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
dmd-beta mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dmd-beta@puremagic.com">dmd-beta@puremagic.com</a>
<a class="moz-txt-link-freetext" href="http://lists.puremagic.com/mailman/listinfo/dmd-beta">http://lists.puremagic.com/mailman/listinfo/dmd-beta</a></pre>
    </blockquote>
    it seems to happen with any code:<br>
    <br>
    int x;<br>
    <br>
    int main()<br>
    {<br>
            return x;<br>
    }<br>
    <br>
    generates<br>
    <br>
    __Dmain comdat<br>
            assume  CS:__Dmain<br>
                    mov     EAX,FS:__tls_array<br>
                    mov     ECX,[EAX]<br>
                    mov     EAX,_D1m1xi[ECX]<br>
                    ret<br>
    __Dmain ends<br>
    <br>
  </body>
</html>