1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/* 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
|