diff options
-rw-r--r-- | src/internal/nt32/syscall.s | 7 | ||||
-rw-r--r-- | src/setjmp/nt32/longjmp.s | 6 | ||||
-rw-r--r-- | src/setjmp/nt32/setjmp.s | 11 | ||||
-rw-r--r-- | src/thread/nt32/syscall_cp.s | 18 |
4 files changed, 37 insertions, 5 deletions
diff --git a/src/internal/nt32/syscall.s b/src/internal/nt32/syscall.s index bf90d04..29fe032 100644 --- a/src/internal/nt32/syscall.s +++ b/src/internal/nt32/syscall.s @@ -4,3 +4,10 @@ ___syscall: jmp ___syscall_disp + + .section .got$___syscall + .global __imp____syscall +__imp____syscall: + .long ___syscall + .linkonce discard + diff --git a/src/setjmp/nt32/longjmp.s b/src/setjmp/nt32/longjmp.s index 46713f2..73b2e61 100644 --- a/src/setjmp/nt32/longjmp.s +++ b/src/setjmp/nt32/longjmp.s @@ -11,3 +11,9 @@ ___longjmp: __longjmp: _longjmp: test %edx, %edx # is val zero? + + .section .got$longjmp + .global __imp__longjmp +__imp__longjmp: + .long _longjmp + .linkonce discard diff --git a/src/setjmp/nt32/setjmp.s b/src/setjmp/nt32/setjmp.s index d4e8db3..7ef6485 100644 --- a/src/setjmp/nt32/setjmp.s +++ b/src/setjmp/nt32/setjmp.s @@ -10,9 +10,10 @@ ___setjmp: __setjmp: _setjmp: - pop (%ecx) # return address - mov %esp, 0x04(%ecx) # caller's stack pointer - push (%ecx) # restore own stack pointer - - xor %eax, %eax ret + + .section .got$setjmp,"r" + .global __imp__setjmp +__imp__setjmp: + .long _setjmp + .linkonce discard diff --git a/src/thread/nt32/syscall_cp.s b/src/thread/nt32/syscall_cp.s index c52731f..1b3f672 100644 --- a/src/thread/nt32/syscall_cp.s +++ b/src/thread/nt32/syscall_cp.s @@ -13,3 +13,21 @@ ___cp_begin: ___cp_end: ret + + .section .got$___syscall_cp_asm + .global __imp____syscall_cp_asm +__imp____syscall_cp_asm: + .long ___syscall_cp_asm + .linkonce discard + + .section .got$___cp_begin + .global __imp____cp_begin +__imp____cp_begin: + .long ___cp_begin + .linkonce discard + + .section .got$___cp_end + .global __imp____cp_end +__imp____cp_end: + .long ___cp_end + .linkonce discard |