- Timestamp:
- 2016-04-27T19:36:56Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- af9dd1e
- Parents:
- d6f9fff
- Location:
- uspace/lib/c/arch/amd64
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/amd64/Makefile.common
rd6f9fff r1a5eca4 27 27 # 28 28 29 GCC_CFLAGS += - fno-omit-frame-pointer29 GCC_CFLAGS += -mno-tls-direct-seg-refs -fno-omit-frame-pointer 30 30 CLANG_CFLAGS += -fno-omit-frame-pointer 31 31 -
uspace/lib/c/arch/amd64/include/libarch/tls.h
rd6f9fff r1a5eca4 47 47 static inline void __tcb_set(tcb_t *tcb) 48 48 { 49 __SYSCALL1(SYS_TLS_SET, (sysarg_t) tcb);49 asm volatile ("movq %0, %%fs:0" :: "r" (tcb)); 50 50 } 51 51 52 static inline tcb_t * 52 static inline tcb_t *__tcb_get(void) 53 53 { 54 void * 54 void *retval; 55 55 56 asm ("movq %%fs:0, %0" : "=r"(retval));56 asm volatile ("movq %%fs:0, %0" : "=r" (retval)); 57 57 return retval; 58 58 } -
uspace/lib/c/arch/amd64/src/fibril.S
rd6f9fff r1a5eca4 51 51 movq %r15, CONTEXT_OFFSET_R15(%rdi) 52 52 53 # save TLS54 53 movq %fs:0, %rax 55 54 movq %rax, CONTEXT_OFFSET_TLS(%rdi) … … 79 78 movq %rdx,(%rsp) 80 79 81 # Set thread local storage 82 movq CONTEXT_OFFSET_TLS(%rdi), %rdi # Set arg1 to TLS addr 83 movl $1, %eax # SYS_TLS_SET 84 syscall 80 movq CONTEXT_OFFSET_TLS(%rdi), %rdi 81 movq %rdi, %fs:0 85 82 86 83 xorl %eax, %eax # context_restore returns 0
Note:
See TracChangeset
for help on using the changeset viewer.