diff options
Diffstat (limited to 'ldso/ldso/mips/resolve.S')
-rw-r--r-- | ldso/ldso/mips/resolve.S | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/ldso/ldso/mips/resolve.S b/ldso/ldso/mips/resolve.S index b160b1cfb..b6dda82d7 100644 --- a/ldso/ldso/mips/resolve.S +++ b/ldso/ldso/mips/resolve.S @@ -1,4 +1,4 @@ -/* + /* * 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. @@ -23,26 +23,19 @@ _dl_linux_resolve: addu $25, 8 # t9 ($25) now points at .cpload instruction .cpload $25 # Compute GP .set reorder - move $2, $31 # Save slot call pc - subu $29, 40 # Save arguments and sp value in stack - .cprestore 32 - sw $15, 36($29) + subu $29, 32 + .cprestore 28 sw $4, 16($29) sw $5, 20($29) - sw $6, 24($29) - sw $7, 28($29) + sw $15, 24($29) move $4, $24 - move $5, $15 - move $6, $3 - move $7, $2 + move $5, $3 jal _dl_linux_resolver - lw $31, 36($29) + lw $31, 24($29) lw $4, 16($29) lw $5, 20($29) - lw $6, 24($29) - lw $7, 28($29) - addu $29, 40 + addu $29, 32 move $25, $2 - jr $25 + jr $25 .size _dl_linux_resolve,.-_dl_linux_resolve .end _dl_linux_resolve |