[fpc-devel] OO rewrite - technical questions

Nikolai Zhubr n-a-zhubr at yandex.ru
Sat Jul 24 16:13:06 CEST 2010


24.07.2010 17:16, Florian Klämpfl:
> Am 24.07.2010 13:42, schrieb Nikolai Zhubr:
>> use them to implement this "special management" so as exceptions and
>> threadvars can be actually used without explicitely using OS APIs.
>
> Delphi does not use a segment register for threadvar handling but OS calls.

For a library - yes, you are right (My memory doesn't serve me good)
However, for an ordinary application - no:

var
   a: longint;
threadvar
   b: longint;
begin
[...]
   a := 1;
         mov    ebx,00000001
   b := a;
         call   @GetTls
         mov    [eax+00000004],ebx
[...]
end.

where GetTls in case of an ordinary application (not dll) is just this:

         MOV     EAX,TlsIndex
         MOV     EDX,FS:tlsArray
         MOV     EAX,[EDX+EAX*4]

> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>




More information about the fpc-devel mailing list