this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix LDT usage on i386

+4 -4
+1 -1
src/kernel/emulation/linux/machdep/tls.c
··· 37 37 LINUX_SYSCALL(__NR_set_thread_area, &desc); 38 38 39 39 entry_number = desc.entry_number; 40 - __asm__ ("movl %0, %%gs" :: "r" (desc.entry_number*8 + 3)); 40 + __asm__ ("movl %0, %%fs" :: "r" (desc.entry_number*8 + 3)); 41 41 #endif 42 42 } 43 43
+3 -3
src/kernel/libsyscall/os/tsd.h
··· 66 66 { 67 67 void *ret; 68 68 #if defined(__i386__) 69 - __asm__("mov %%gs:%1, %0" : "=r" (ret) : "m" (*(void **)(slot * sizeof(void *)))); 69 + __asm__("mov %%fs:%1, %0" : "=r" (ret) : "m" (*(void **)(slot * sizeof(void *)))); 70 70 #else 71 71 __asm__("mov %%gs:%1, %0" : "=r" (ret) : "m" (*(void **)(slot * sizeof(void *)))); 72 72 #endif ··· 78 78 _os_tsd_set_direct(unsigned long slot, void *val) 79 79 { 80 80 #if defined(__i386__) && defined(__PIC__) 81 - __asm__("movl %1, %%gs:%0" : "=m" (*(void **)(slot * sizeof(void *))) : "rn" (val)); 81 + __asm__("movl %1, %%fs:%0" : "=m" (*(void **)(slot * sizeof(void *))) : "rn" (val)); 82 82 #elif defined(__i386__) && !defined(__PIC__) 83 - __asm__("movl %1, %%gs:%0" : "=m" (*(void **)(slot * sizeof(void *))) : "ri" (val)); 83 + __asm__("movl %1, %%fs:%0" : "=m" (*(void **)(slot * sizeof(void *))) : "ri" (val)); 84 84 #else 85 85 __asm__("movq %1, %%gs:%0" : "=m" (*(void **)(slot * sizeof(void *))) : "rn" (val)); 86 86 #endif