diff options
Diffstat (limited to 'lib/mlibc/sysdeps/linux/x86/thread_entry.S')
-rw-r--r-- | lib/mlibc/sysdeps/linux/x86/thread_entry.S | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/lib/mlibc/sysdeps/linux/x86/thread_entry.S b/lib/mlibc/sysdeps/linux/x86/thread_entry.S deleted file mode 100644 index 031a6aa..0000000 --- a/lib/mlibc/sysdeps/linux/x86/thread_entry.S +++ /dev/null @@ -1,61 +0,0 @@ -#define FLAGS 4 -#define STACK FLAGS+4 -#define PTID STACK+4 -#define CTID PTID+4 -#define TLS CTID+4 - -.section .text -.global __mlibc_spawn_thread -.type __mlibc_spawn_thread, "function" -.cfi_startproc -__mlibc_spawn_thread: - push %ebx - .cfi_adjust_cfa_offset 4 - .cfi_rel_offset ebx, 0 - push %esi - .cfi_adjust_cfa_offset 4 - .cfi_rel_offset esi, 0 - push %edi - .cfi_adjust_cfa_offset 4 - .cfi_rel_offset edi, 0 - - xor %eax, %eax - mov 12+FLAGS(%esp), %ebx - mov 12+STACK(%esp), %ecx - mov 12+PTID(%esp), %edx - /* On x86-32 tls and child_tid have to be reversed */ - mov 12+TLS(%esp), %esi - mov 12+CTID(%esp), %edi - mov $120, %al - - int $0x80 - - test %eax, %eax - jnz .parent_exit - - xor %ebp, %ebp - .cfi_undefined %eip - .cfi_undefined %ebp - - call 1f -1: - pop %ebx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx - - call __mlibc_enter_thread@plt - hlt - -.parent_exit: - pop %edi - .cfi_adjust_cfa_offset -4 - .cfi_restore edi - pop %esi - .cfi_adjust_cfa_offset -4 - .cfi_restore esi - pop %ebx - .cfi_adjust_cfa_offset -4 - .cfi_restore ebx - ret -.cfi_endproc - -.section .note.GNU-stack,"",%progbits |