| /* 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. */ |
| |
| .section .init,"ax",@progbits |
| #ifdef __mips16 |
| /* The mips16 uses $7 for a return address. We use that here too. */ |
| lw $7,20($sp) |
| addu $sp,$sp,32 |
| |
| j $7 |
| #else |
| #ifdef __mips64 |
| ld $31,40($sp) |
| daddu $sp,$sp,48 |
| #else |
| lw $31,20($sp) |
| addu $sp,$sp,32 |
| #endif |
| j $31 |
| |
| #endif |
| |
| .section .fini,"ax",@progbits |
| #ifdef __mips16 |
| /* The mips16 uses $7 for a return address. We use that here too. */ |
| lw $7,20($sp) |
| addu $sp,$sp,32 |
| |
| j $7 |
| #else |
| #ifdef __mips64 |
| ld $31,40($sp) |
| daddu $sp,$sp,48 |
| #else |
| lw $31,20($sp) |
| addu $sp,$sp,32 |
| #endif |
| j $31 |
| #endif |