History log of /haiku/src/system/libroot/os/arch/x86_64/tls.cpp
Revision Date Author Comments
# 90d62fd9 29-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

TLS.h: Drop inline assembly from the header.

This was a holdover from BeOS, which did this as inline assembly.
We do not on any platform other than 32-bit x86, and even there
we may have preferred to do things a little differently on non-BeOS
ABIs.

Most things ported from other systems, or even native apps, are going to
use _Thread_local variables anyway, which will bypass this system
altogether.


# 34464374 05-May-2014 Pawel Dziepak <pdziepak@quarnos.org>

libroot/x86_64: minor improvements in TLS code

* less inline asm
* std::atomic<> instead of obsolete atomic_*()


# 44c0c4d3 03-May-2014 Pawel Dziepak <pdziepak@quarnos.org>

runtime_loader: add support for ELF based TLS

This patch introduces support of ELF based TLS handling with lazy allocation
and initalization of TLS block for each DSO and thread. The implementation
generally follows the official ABI except that generation counter in dtv
is in fact a pointer to Generation object that contains both generation
counter and size of the dtv. That simplified the implementation a bit, but
could be changed later. The ABI requirements regariding in memory position
of TLS block is not honoured what results in static TLS model being
unsupported. However, that should not be a problem as long as
"executables" in Haiku are in fact shared objects and optimizations which
require specific TLS block in memory layout are not possible anyway.


# 634bc98a 02-May-2014 Pawel Dziepak <pdziepak@quarnos.org>

libroot/x86[_64]: relax asm constraints in tls_*() functions


# 03add8e7 29-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Implemented TLS for x86_64.


# bd8b78e6 28-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added a dumb TLS implementation rather than printing an error.

Will properly implement TLS soon, for now a "working" implementation
is needed for anything to work properly.


# fd9f32c0 22-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added some libroot bits for x86_64.

Still some parts missing (the glibc bits + fenv.c), plus the TLS
functions are only stubs.


# 344643740a95c2e3bcdc2286c3310527bcbb5844 05-May-2014 Pawel Dziepak <pdziepak@quarnos.org>

libroot/x86_64: minor improvements in TLS code

* less inline asm
* std::atomic<> instead of obsolete atomic_*()


# 44c0c4d3d0d68c3c3db23858b1089d3cf51bdf16 03-May-2014 Pawel Dziepak <pdziepak@quarnos.org>

runtime_loader: add support for ELF based TLS

This patch introduces support of ELF based TLS handling with lazy allocation
and initalization of TLS block for each DSO and thread. The implementation
generally follows the official ABI except that generation counter in dtv
is in fact a pointer to Generation object that contains both generation
counter and size of the dtv. That simplified the implementation a bit, but
could be changed later. The ABI requirements regariding in memory position
of TLS block is not honoured what results in static TLS model being
unsupported. However, that should not be a problem as long as
"executables" in Haiku are in fact shared objects and optimizations which
require specific TLS block in memory layout are not possible anyway.


# 634bc98a3cbfaa922443a3b9351f83f524592ea6 02-May-2014 Pawel Dziepak <pdziepak@quarnos.org>

libroot/x86[_64]: relax asm constraints in tls_*() functions


# 03add8e7c216a9ba83a2c565cb82962d6cdc53c4 29-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Implemented TLS for x86_64.


# bd8b78e6eedb24ab48771d18db6e091488cf53d3 28-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added a dumb TLS implementation rather than printing an error.

Will properly implement TLS soon, for now a "working" implementation
is needed for anything to work properly.


# fd9f32c0db56a5cebdda79c329b479355bdde87c 22-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added some libroot bits for x86_64.

Still some parts missing (the glibc bits + fenv.c), plus the TLS
functions are only stubs.