summaryrefslogtreecommitdiff
path: root/ldso/ldso/mips/dl-sysdep.h
diff options
context:
space:
mode:
authorSteve Ellcey <sellcey@imgtec.com>2015-12-23 08:38:41 -0800
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-12-23 21:03:00 +0100
commitcc82a850a0ebfbacb7fb62ea2c5b7dd6aebb005d (patch)
tree9a5f0309c1f20a4c7ba85e9dc57f7b9d7e6c2e2f /ldso/ldso/mips/dl-sysdep.h
parent2636b17616a19d628c3dbc373ebae67ef6e2b1f6 (diff)
Replace bltzal with lapc for MIPS R6 builds.
The R6 version of MIPS does not support the bltzal instruction. This patch changes dl-startup.h and dl-sysdep.h to use lapc on R6 instead. lapc is a new R6 insruction so older systems need to continue to use bltzal in order to load register $31. Signed-off-by: Steve Ellcey <sellcey@imgtec.com>
Diffstat (limited to 'ldso/ldso/mips/dl-sysdep.h')
-rw-r--r--ldso/ldso/mips/dl-sysdep.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/ldso/ldso/mips/dl-sysdep.h b/ldso/ldso/mips/dl-sysdep.h
index 6041245d0..b2caa7fa0 100644
--- a/ldso/ldso/mips/dl-sysdep.h
+++ b/ldso/ldso/mips/dl-sysdep.h
@@ -225,10 +225,15 @@ elf_machine_load_address (void)
{
ElfW(Addr) addr;
__asm__ (" .set noreorder\n"
+# if !defined __mips_isa_rev || __mips_isa_rev < 6
" " STRINGXP (PTR_LA) " %0, 0f\n"
" bltzal $0, 0f\n"
" nop\n"
"0: " STRINGXP (PTR_SUBU) " %0, $31, %0\n"
+#else
+ "0: lapc $31, 0\n"
+ " " STRINGXP (PTR_SUBU) " %0, $31, %0\n"
+#endif
" .set reorder\n"
: "=r" (addr)
: /* No inputs */