diff options
Diffstat (limited to 'arch/arm/pthread_arch.h')
| -rw-r--r-- | arch/arm/pthread_arch.h | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/arch/arm/pthread_arch.h b/arch/arm/pthread_arch.h index 6657e198..8f2ae8f8 100644 --- a/arch/arm/pthread_arch.h +++ b/arch/arm/pthread_arch.h @@ -5,7 +5,7 @@ static inline pthread_t __pthread_self()  {  	char *p;  	__asm__ __volatile__ ( "mrc p15,0,%0,c13,c0,3" : "=r"(p) ); -	return (void *)(p+8-sizeof(struct pthread)); +	return (void *)(p-sizeof(struct pthread));  }  #else @@ -21,12 +21,13 @@ static inline pthread_t __pthread_self()  	extern uintptr_t __attribute__((__visibility__("hidden"))) __a_gettp_ptr;  	register uintptr_t p __asm__("r0");  	__asm__ __volatile__ ( BLX " %1" : "=r"(p) : "r"(__a_gettp_ptr) : "cc", "lr" ); -	return (void *)(p+8-sizeof(struct pthread)); +	return (void *)(p-sizeof(struct pthread));  }  #endif  #define TLS_ABOVE_TP -#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) +#define GAP_ABOVE_TP 8 +#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread))  #define MC_PC arm_pc | 
