[fpc-devel] threadvar implementation
mschnell at lumino.de
Thu Aug 5 12:01:54 CEST 2010
On 08/05/2010 11:09 AM, Hans-Peter Diettrich wrote:
> I had thought that this has been fixed on newer architectures, that
> use the flat model only.
This can't easily be "fixed" by hardware, how to express that LEA should
convert e.g. a DS-based offset into a FS based one or the other way
round, or even a GS based address into an FS based one ?
All other instructions work with at most a single "Logical Address" so a
single prefix instruction (or set of flags denoting DS:, SS:, CS:, FS:
or GS: ) is enough to denote how the 32 bit Offset is to be extended to
the 48 Bit Linear Address.
LEA - if working on Logical addresses - in fact would need two sets of
segment prefix flags. These are not provided by the basic paradigm of
the instruction set and thus LEA works on 32 Offsets rather than on 48
Bit Linear Addresses.
More information about the fpc-devel