summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorjchandra <jchandra@FreeBSD.org>2010-06-16 16:39:01 +0000
committerjchandra <jchandra@FreeBSD.org>2010-06-16 16:39:01 +0000
commit54db007c1621af260c397af683d4634a84908b51 (patch)
tree3660912e5d5a0ee143aec799a9f9d8137f6bff88 /libexec
parent73fa18d1219cfe5bbbd1cb783a5cff14745e4b0c (diff)
downloadFreeBSD-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.S8
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
OpenPOWER on IntegriCloud