diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libdl/_dl_jump.S')
-rw-r--r-- | mdk-stage1/dietlibc/libdl/_dl_jump.S | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/mdk-stage1/dietlibc/libdl/_dl_jump.S b/mdk-stage1/dietlibc/libdl/_dl_jump.S deleted file mode 100644 index bd7115258..000000000 --- a/mdk-stage1/dietlibc/libdl/_dl_jump.S +++ /dev/null @@ -1,55 +0,0 @@ -.text -.global _dl_jump -_dl_jump: - -#ifdef __i386__ -.type _dl_jump,@function - - pushl %eax # save register args... - pushl %ecx - pushl %edx - - pushl %ebx - - pushl 20(%esp) # 2. arg from plt - pushl 20(%esp) # 1. arg from plt - -#ifdef __DYN_LIB - call 1f -1: popl %ebx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b],%ebx - call do_rel@PLT -#else - call do_rel -#endif - addl $8, %esp - - popl %ebx - - popl %edx # restore register args... - popl %ecx - - xchgl %eax, (%esp) # restore eax and save function pointer (for return) - - ret $8 # remove arguments from plt and jump to REAL function - -#endif - -#ifdef __arm__ -.type _dl_jump,function - - stmdb sp!, {r0, r1, r2, r3} - sub r1, ip, lr - sub r1, r1, #4 - add r1, r1, r1 /* dyntab entry */ - ldr r0, [lr, #-4] /* dynlib handle */ -#ifdef __DYN_LIB - bl do_rel(PLT) -#else - bl do_rel -#endif - mov r12, r0 - ldmia sp!, {r0, r1, r2, r3, lr} - mov pc, r12 - -#endif |