diff options
Diffstat (limited to 'arch/mips/crt_arch.h')
-rw-r--r-- | arch/mips/crt_arch.h | 49 |
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" +); |