fix dlsym asm for mips
authorRich Felker <dalias@aerifal.cx>
Thu, 8 Nov 2012 19:31:49 +0000 (14:31 -0500)
committerRich Felker <dalias@aerifal.cx>
Thu, 8 Nov 2012 19:31:49 +0000 (14:31 -0500)
saving the return address from the delay slot is not valid -- by the
time the instruction executes, the return address has already been
replaced.

src/ldso/mips/dlsym.s

index b1ea98be40f44fcb1502eaec3539ff6349f08c6a..c57b972918410aeb7b6a2d419deeeff7dd9cb5b5 100644 (file)
@@ -8,8 +8,9 @@ dlsym:
        move $6, $ra
        lw $25, %call16(__dlsym)($gp)
        addiu $sp, $sp, -16
-       jalr $25
        sw $ra, 12($sp)
+       jalr $25
+       nop
        lw $ra, 12($sp)
        jr $ra
        addiu $sp, $sp, 16