resolve.s
来自「ucLinux is a very good embeded sytem. Mo」· S 代码 · 共 68 行
S
68 行
/* * Linux dynamic resolving code for MIPS. Fixes up the GOT entry as * indicated in register t8 and jumps to the resolved address. Shamelessly * ripped from 'sysdeps/mips/dl-machine.h' in glibc-2.2.5. * * This file is subject to the terms and conditions of the GNU Lesser General * Public License. See the file "COPYING.LIB" in the main directory of this * archive for more details. * * Copyright (C) 1996-2001 Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp> * Copyright (C) 2002 Steven J. Hill <sjhill@realitydiluted.com> * */.text.align 2.globl _dl_runtime_resolve.type _dl_runtime_resolve,@function.ent _dl_runtime_resolve_dl_runtime_resolve: .frame $29, 40, $31 .set noreorder # Save GP. move $3, $28 # Save arguments and sp value on stack. subu $29, 40 # Modify t9 ($25) so as to point .cpload instruction. addiu $25, 12 # Compute GP. .set noreorder .cpload $25 .set reorder # Save slot call pc. move $2, $31 .cprestore 32 # Store function arguments from registers to stack sw $15, 36($29) sw $4, 16($29) sw $5, 20($29) sw $6, 24($29) sw $7, 28($29) # Setup functions args and call __dl_runtime_resolve move $4, $24 move $5, $3 jal __dl_runtime_resolve # Restore function arguments from stack to registers lw $31, 36($29) lw $4, 16($29) lw $5, 20($29) lw $6, 24($29) lw $7, 28($29) # Do a tail call to the original function addiu $29, 40 move $25, $2 jr $25.end _dl_runtime_resolve.previous
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?