diff options
Diffstat (limited to 'contrib/gcc/config/mips/crtn.asm')
-rw-r--r-- | contrib/gcc/config/mips/crtn.asm | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/gcc/config/mips/crtn.asm b/contrib/gcc/config/mips/crtn.asm new file mode 100644 index 0000000000000..5d41d3d7ecb84 --- /dev/null +++ b/contrib/gcc/config/mips/crtn.asm @@ -0,0 +1,29 @@ +/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack. + Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */ + +#ifdef __mips16 +#define RA $7 +#else +#define RA $31 +#endif + + .section .init,"ax",@progbits +#ifdef __mips64 + ld RA,40($sp) + daddu $sp,$sp,48 +#else + lw RA,20($sp) + addu $sp,$sp,32 +#endif + j RA + + .section .fini,"ax",@progbits +#ifdef __mips64 + ld RA,40($sp) + daddu $sp,$sp,48 +#else + lw RA,20($sp) + addu $sp,$sp,32 +#endif + j RA + |