diff options
author | Rich Felker <dalias@aerifal.cx> | 2016-04-18 05:19:13 +0000 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2016-04-18 05:19:13 +0000 |
commit | 5972c4a4113e2a4de5edf519faf15296ae1eb3ed (patch) | |
tree | 6e808f23bb96a9b8a82eb505e2a719f4f42a758d /arch/mipsn32/crt_arch.h | |
parent | 6d99ad91e869aab35a4d76d34c3c9eaf29482bad (diff) | |
download | musl-5972c4a4113e2a4de5edf519faf15296ae1eb3ed.tar.gz musl-5972c4a4113e2a4de5edf519faf15296ae1eb3ed.tar.xz musl-5972c4a4113e2a4de5edf519faf15296ae1eb3ed.zip |
add mips n32 port (ILP32 ABI for mips64)
based on patch submitted by Jaydeep Patil, with minor changes.
Diffstat (limited to 'arch/mipsn32/crt_arch.h')
-rw-r--r-- | arch/mipsn32/crt_arch.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/mipsn32/crt_arch.h b/arch/mipsn32/crt_arch.h new file mode 100644 index 00000000..eb5928cc --- /dev/null +++ b/arch/mipsn32/crt_arch.h @@ -0,0 +1,32 @@ +__asm__( +".set push\n" +".set noreorder\n" +".text \n" +".global _" START "\n" +".global " START "\n" +".global " START "_data\n" +".type _" START ", @function\n" +".type " START ", @function\n" +".type " START "_data, @function\n" +"_" START ":\n" +"" START ":\n" +" bal 1f \n" +" move $fp, $0 \n" +"" START "_data: \n" +" .gpword " START "_data \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" +" and $sp, $sp, -8 \n" +" jalr $25 \n" +" subu $sp, $sp, 16 \n" +".set pop \n" +); |