summaryrefslogtreecommitdiff
path: root/ldso/ldso/mips/boot1_arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'ldso/ldso/mips/boot1_arch.h')
-rw-r--r--ldso/ldso/mips/boot1_arch.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/ldso/ldso/mips/boot1_arch.h b/ldso/ldso/mips/boot1_arch.h
index f439ee4bc..05aaf9ebb 100644
--- a/ldso/ldso/mips/boot1_arch.h
+++ b/ldso/ldso/mips/boot1_arch.h
@@ -1,7 +1,6 @@
/* Any assmbly language/system dependent hacks needed to setup boot1.c so it
* will work as expected and cope with whatever platform specific wierdness is
- * needed for this architecture. See arm/boot1_arch.h for an example of what
- * can be done.
+ * needed for this architecture.
*/
asm("
@@ -13,7 +12,6 @@ _dl_boot:
nop
0: .cpload $31
.set reorder
- # Store offset of DYNAMIC section in first entry of GOT
la $4, _DYNAMIC
sw $4, -0x7ff0($28)
move $4, $29
@@ -23,6 +21,14 @@ coff: subu $8, $31, $8
la $25, _dl_boot2
addu $25, $8
jalr $25
+ lw $4, 0($29)
+ la $5, 4($29)
+ sll $6, $4, 2
+ addu $6, $6, $5
+ addu $6, $6, 4
+ la $7, _dl_elf_main
+ lw $25, 0($7)
+ jr $25
");
#define _dl_boot _dl_boot2