about summary refs log tree commit diff
path: root/arch/mips/crt_arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/crt_arch.h')
-rw-r--r--arch/mips/crt_arch.h49
1 files changed, 28 insertions, 21 deletions
diff --git a/arch/mips/crt_arch.h b/arch/mips/crt_arch.h
index d4ae52d1..33bde4e6 100644
--- a/arch/mips/crt_arch.h
+++ b/arch/mips/crt_arch.h
@@ -1,21 +1,28 @@
-__asm__("\n\
-.set push\n\
-.set noreorder\n\
-.global __start\n\
-.global _start\n\
-.type   __start, @function\n\
-.type   _start, @function\n\
-__start:\n\
-_start:\n\
-	bal 1f \n\
-	move $fp, $0 \n\
-2:	.gpword 2b \n\
-1:	lw $gp, 0($ra) \n\
-	subu $gp, $ra, $gp \n\
-	move $4, $sp \n\
-	subu $sp, $sp, 16 \n\
-	and $sp, $sp, -8 \n\
-	lw $25, %call16(__cstart)($gp) \n\
-	jalr $25 \n\
-	nop \n\
-.set pop");
+__asm__(
+".set push\n"
+".set noreorder\n"
+".global _" START "\n"
+".global " START "\n"
+".type   _" START ", @function\n"
+".type   " START ", @function\n"
+"_" START ":\n"
+"" START ":\n"
+"	bal 1f \n"
+"	 move $fp, $0 \n"
+"2:	.gpword 2b \n"
+	.gpword " START "_c \n"
+".weak _DYNAMIC \n"
+".hidden _DYNAMIC \n"
+"	.gpword _DYNAMIC \n"
+"1:	lw $gp, 0($ra) \n"
+"	subu $gp, $ra, $gp \n"
+"	move $4, $sp \n"
+"	lw $5, 8($ra) \n"
+"	addu $5, $5, $gp \n"
+"	lw $25, 4($ra) \n"
+"	addu $25, $25, $gp \n"
+"	subu $sp, $sp, 16 \n"
+"	jalr $25 \n"
+"	 and $sp, $sp, -8 \n"
+".set pop \n"
+);