<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<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>
</body>
</html>