diff options
author | jchandra <jchandra@FreeBSD.org> | 2010-06-16 16:39:01 +0000 |
---|---|---|
committer | jchandra <jchandra@FreeBSD.org> | 2010-06-16 16:39:01 +0000 |
commit | 54db007c1621af260c397af683d4634a84908b51 (patch) | |
tree | 3660912e5d5a0ee143aec799a9f9d8137f6bff88 /libexec | |
parent | 73fa18d1219cfe5bbbd1cb783a5cff14745e4b0c (diff) | |
download | FreeBSD-src-54db007c1621af260c397af683d4634a84908b51.zip FreeBSD-src-54db007c1621af260c397af683d4634a84908b51.tar.gz |
Merge jmallett@'s n64 work into HEAD - changeset 3
Update rtld MIPS code to use assembly macros that work on o32/n64.
Changes from http://svn.freebsd.org/base/user/jmallett/octeon
Approved by: rrs(mentor), jmallett
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/rtld-elf/mips/rtld_start.S | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libexec/rtld-elf/mips/rtld_start.S b/libexec/rtld-elf/mips/rtld_start.S index b4b7079..630e5e5 100644 --- a/libexec/rtld-elf/mips/rtld_start.S +++ b/libexec/rtld-elf/mips/rtld_start.S @@ -68,7 +68,8 @@ LEAF(rtld_start) move a0, s0 /* sp */ PTR_ADDU a1, sp, 2*PTR_SIZE /* &our atexit function */ PTR_ADDU a2, sp, 3*PTR_SIZE /* obj_main entry */ - jal _C_LABEL(_rtld) /* v0 = _rtld(sp, cleanup, objp) */ + PTR_LA t9, _C_LABEL(_rtld) + jalr t9 /* v0 = _rtld(sp, cleanup, objp) */ nop PTR_L a1, 2*PTR_SIZE(sp) /* our atexit function */ @@ -123,7 +124,7 @@ _rtld_bind_start: move s0, sp move a0, v1 /* old GP */ - subu a0, a0, 0x7ff0 /* The offset of $gp from the */ + PTR_SUBU a0, a0, 0x7ff0 /* The offset of $gp from the */ /* beginning of the .got section: */ /* $gp = .got + 0x7ff0, so */ /* .got = $gp - 0x7ff0 */ @@ -136,7 +137,8 @@ _rtld_bind_start: and a0, a0, 0x7fffffff move a1, t8 /* symbol index */ - jal _C_LABEL(_mips_rtld_bind) + PTR_LA t9, _C_LABEL(_mips_rtld_bind) + jalr t9 nop move sp, s0 |