diff --git a/headers/os/support/TLS.h b/headers/os/support/TLS.h index 87c1f9b4e8..0a1b55215f 100644 --- a/headers/os/support/TLS.h +++ b/headers/os/support/TLS.h @@ -1,12 +1,11 @@ /* - * Copyright 2003-2007 Haiku, Inc. All rights reserved. + * Copyright 2003-2021, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef _TLS_H #define _TLS_H -#include #include @@ -22,46 +21,10 @@ extern "C" { #endif /* __cplusplus */ extern int32 tls_allocate(void); - -#if !_NO_INLINE_ASM && __i386__ && __GNUC__ - -static inline void * -tls_get(int32 index) -{ - void *ret; - __asm__ __volatile__ ( - "movl %%fs:(, %1, 4), %0" - : "=r" (ret) : "r" (index)); - return ret; -} - -static inline void ** -tls_address(int32 index) -{ - void **ret; - __asm__ __volatile__ ( - "movl %%fs:0, %0\n\t" - "leal (%0, %1, 4), %0\n\t" - : "=&r" (ret) : "r" (index)); - return ret; -} - -static inline void -tls_set(int32 index, void *value) -{ - __asm__ __volatile__ ( - "movl %1, %%fs:(, %0, 4)" - : : "r" (index), "r" (value)); -} - -#else /* !_NO_INLINE_ASM && __i386__ && __GNUC__ */ - extern void *tls_get(int32 index); extern void **tls_address(int32 index); extern void tls_set(int32 index, void *value); -#endif /* !_NO_INLINE_ASM && __i386__ && __GNUC__ */ - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/system/libroot/os/arch/arm/tls.c b/src/system/libroot/os/arch/arm/tls.c index 1286a28b61..c14ee33113 100644 --- a/src/system/libroot/os/arch/arm/tls.c +++ b/src/system/libroot/os/arch/arm/tls.c @@ -1,15 +1,9 @@ /* * Copyright 2019-2022, Haiku, Inc. All Rights Reserved. - * Distributed under the terms of the MIT License. - * * Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. */ -#ifndef _NO_INLINE_ASM -# define _NO_INLINE_ASM 1 -#endif - #include #include @@ -71,4 +65,3 @@ __tls_get_addr(struct tls_index *ti) { return __gRuntimeLoader->get_tls_address(ti->ti_module, ti->ti_offset); } - diff --git a/src/system/libroot/os/arch/m68k/tls.c b/src/system/libroot/os/arch/m68k/tls.c index dbc2eecee5..de625b00f5 100644 --- a/src/system/libroot/os/arch/m68k/tls.c +++ b/src/system/libroot/os/arch/m68k/tls.c @@ -1,4 +1,4 @@ -/* +/* ** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. ** Distributed under the terms of the MIT License. */ @@ -9,11 +9,6 @@ #warning FIXME: M68K -// we don't want to have the inline assembly included here -#ifndef _NO_INLINE_ASM -# define _NO_INLINE_ASM 1 -#endif - #include #include "support/TLS.h" diff --git a/src/system/libroot/os/arch/ppc/tls.c b/src/system/libroot/os/arch/ppc/tls.c index 79c0a5a632..adf1d77e51 100644 --- a/src/system/libroot/os/arch/ppc/tls.c +++ b/src/system/libroot/os/arch/ppc/tls.c @@ -1,4 +1,4 @@ -/* +/* ** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. ** Distributed under the terms of the MIT License. */ @@ -7,11 +7,6 @@ // to decide how this should be done, so it's just broken now (okay for single // threaded apps, though). -// we don't want to have the inline assembly included here -#ifndef _NO_INLINE_ASM -# define _NO_INLINE_ASM 1 -#endif - #include "support/TLS.h" #include "tls.h" diff --git a/src/system/libroot/os/arch/sparc/tls.c b/src/system/libroot/os/arch/sparc/tls.c index 79c0a5a632..adf1d77e51 100644 --- a/src/system/libroot/os/arch/sparc/tls.c +++ b/src/system/libroot/os/arch/sparc/tls.c @@ -1,4 +1,4 @@ -/* +/* ** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. ** Distributed under the terms of the MIT License. */ @@ -7,11 +7,6 @@ // to decide how this should be done, so it's just broken now (okay for single // threaded apps, though). -// we don't want to have the inline assembly included here -#ifndef _NO_INLINE_ASM -# define _NO_INLINE_ASM 1 -#endif - #include "support/TLS.h" #include "tls.h" diff --git a/src/system/libroot/os/arch/x86/tls.c b/src/system/libroot/os/arch/x86/tls.c index cdf94da3d7..4b4d13014e 100644 --- a/src/system/libroot/os/arch/x86/tls.c +++ b/src/system/libroot/os/arch/x86/tls.c @@ -5,11 +5,6 @@ */ -// we don't want to have the inline assembly included here -#ifndef _NO_INLINE_ASM -# define _NO_INLINE_ASM 1 -#endif - #include #include "support/TLS.h" diff --git a/src/system/libroot/os/arch/x86_64/tls.cpp b/src/system/libroot/os/arch/x86_64/tls.cpp index 48be9078fc..45a5489785 100644 --- a/src/system/libroot/os/arch/x86_64/tls.cpp +++ b/src/system/libroot/os/arch/x86_64/tls.cpp @@ -5,10 +5,6 @@ */ -#ifndef _NO_INLINE_ASM -# define _NO_INLINE_ASM 1 -#endif - #include #include