]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/mips/crtn.asm
mips.md (eh_set_lr_si, [...]): Change constraints to 'd'.
[thirdparty/gcc.git] / gcc / config / mips / crtn.asm
CommitLineData
46f9491e 1/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
a098df27 2 Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
46f9491e
EC
3
4 .section .init,"ax",@progbits
b137f9fc
EC
5#ifdef __mips16
6/* The mips16 uses $7 for a return address. We use that here too. */
7 lw $7,20($sp)
8 addu $sp,$sp,32
9
10 j $7
11#else
46f9491e
EC
12#ifdef __mips64
13 ld $31,40($sp)
14 daddu $sp,$sp,48
15#else
16 lw $31,20($sp)
17 addu $sp,$sp,32
282cb01b 18#endif
46f9491e 19 j $31
b137f9fc 20
282cb01b 21#endif
46f9491e
EC
22
23 .section .fini,"ax",@progbits
b137f9fc 24#ifdef __mips16
282cb01b
EC
25/* The mips16 uses $7 for a return address. We use that here too. */
26 lw $7,20($sp)
27 addu $sp,$sp,32
28
29 j $7
b137f9fc
EC
30#else
31#ifdef __mips64
32 ld $31,40($sp)
33 daddu $sp,$sp,48
34#else
35 lw $31,20($sp)
36 addu $sp,$sp,32
46f9491e
EC
37#endif
38 j $31
282cb01b 39#endif