.global __syscall
-.type __syscall,%function
__syscall:
pushl %ebx
pushl %esi
popl %esi
popl %ebx
ret
-.size __syscall,.-__syscall
.global __syscall
-.type __syscall,%function
__syscall:
movq %rdi,%rax
movq %rsi,%rdi
movq 8(%rsp),%r9
syscall
ret
-.size __syscall,.-__syscall
.global _longjmp
.global longjmp
-.type _longjmp,%function
-.type longjmp,%function
_longjmp:
longjmp:
mov 4(%esp),%edx
mov %ecx,%esp
mov 20(%edx),%ecx
jmp *%ecx
-.size _longjmp,.-_longjmp
-.size longjmp,.-longjmp
.global __setjmp
.global _setjmp
.global setjmp
-.type __setjmp,%function
-.type _setjmp,%function
-.type setjmp,%function
__setjmp:
_setjmp:
setjmp:
mov %ecx, 20(%eax)
xor %eax, %eax
ret
-.size __setjmp,.-__setjmp
-.size _setjmp,.-_setjmp
-.size setjmp,.-setjmp
/* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
.global _longjmp
.global longjmp
-.type _longjmp,%function
-.type longjmp,%function
_longjmp:
longjmp:
mov %rsi,%rax /* val will be longjmp return */
mov %rdx,%rsp
mov 56(%rdi),%rdx /* this is the instruction pointer */
jmp *%rdx /* goto saved address without altering rsp */
-.size _longjmp,.-_longjmp
-.size longjmp,.-longjmp
.global __setjmp
.global _setjmp
.global setjmp
-.type __setjmp,%function
-.type _setjmp,%function
-.type setjmp,%function
__setjmp:
_setjmp:
setjmp:
mov %rdx,56(%rdi)
xor %rax,%rax /* always return 0 */
ret
-.size __setjmp,.-__setjmp
-.size _setjmp,.-_setjmp
-.size setjmp,.-setjmp
.global __restore
-.type __restore,%function
__restore:
popl %eax
movl $119, %eax
int $0x80
-.size __restore,.-__restore
.global __restore_rt
-.type __restore_rt,%function
__restore_rt:
movl $173, %eax
int $0x80
-.size __restore_rt,.-__restore_rt
-
.global __restore_rt
.global __restore
-.type __restore_rt,%function
-.type __restore,%function
__restore_rt:
__restore:
movl $15, %eax
syscall
-.size __restore_rt,.-__restore_rt
-.size __restore,.-__restore
-
.text
.global __set_thread_area
-.type __set_thread_area,%function
__set_thread_area:
pushl %ebx
movl 8(%esp),%ecx
movw %cx,%gs
1:
ret
-.size __set_thread_area,.-__set_thread_area
.text
.global __unmapself
-.type __unmapself,%function
__unmapself:
movl $91,%eax
movl 4(%esp),%ebx
xorl %ebx,%ebx
movl $1,%eax
int $128
-
-.size __unmapself,.-__unmapself
.text
.global __pthread_register_cancel
-.type __pthread_register_cancel,%function
__pthread_register_cancel:
pushl %eax
call __pthread_register_cancel_3
ret
.global __pthread_unregister_cancel
-.type __pthread_unregister_cancel,%function
__pthread_unregister_cancel:
pushl %eax
call __pthread_unregister_cancel_3
.text
.global __pthread_unwind_next
-.type __pthread_unwind_next,%function
__pthread_unwind_next:
pushl %eax
call __pthread_unwind_next_3
.text
.global __uniclone
-.type __uniclone,%function
__uniclone:
movl 4(%esp),%ecx
subl $24,%ecx
popl %esi
popl %ebx
ret
-.size __uniclone,.-__uniclone
.text
.global __syscall_cp_asm
-.type __syscall_cp_asm,%function
__syscall_cp_asm:
pushl %ebx
pushl %esi
/* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
.text
.global __set_thread_area
-.type __set_thread_area,%function
__set_thread_area:
mov %rdi,%rsi /* shift for syscall */
movl $0x1002,%edi /* SET_FS register */
movl $158,%eax /* set fs segment to */
syscall /* arch_prctl(SET_FS, arg)*/
ret
-.size __set_thread_area,.-__set_thread_area
/* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
.text
.global __unmapself
-.type __unmapself,%function
__unmapself:
movl $11,%eax /* SYS_munmap */
syscall /* munmap(arg2,arg3) */
xor %rdi,%rdi /* exit() args: always return success */
movl $60,%eax /* SYS_exit */
syscall /* exit(0) */
-.size __unmapself,.-__unmapself
/* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
.text
.global __uniclone
-.type __uniclone,%function
/* rdi = child_stack, rsi = start, rdx = pthread_struct */
__uniclone:
subq $8,%rsp /* pad parent stack to prevent branch later */
pop %rdi /* child stack: restore pthread_struct
* parent stack: undo rsp displacement */
ret
-.size __uniclone,.-__uniclone
.text
.global __syscall_cp_asm
-.type __syscall_cp_asm,%function
__syscall_cp_asm:
lea 1f(%rip),%rax
mov %rax,8(%rdi)