Commit | Line | Data |
---|---|---|
885add95 CD |
1 | |
2 | .text | |
3 | .ent func1 | |
4 | func1: | |
5 | .frame $sp,0,$31 | |
6 | .set noreorder | |
7 | .cpload $25 # 0000 lui gp,hi(_gp_disp) | |
8 | # 0004 addiu gp,gp,lo(_gp_disp) | |
9 | # 0008 addu gp,gp,t9 | |
10 | .set reorder | |
11 | .cprestore 8 # 000c sw gp,8(sp) | |
12 | ||
13 | jal end # 0010 lw t9,got(.text)(gp) | |
14 | # 0014 nop | |
15 | # 0018 addiu t9,t9,lo(end) | |
16 | # 001c jalr t9 | |
17 | # 0020 nop | |
18 | # 0024 lw gp,8(sp) | |
19 | ||
20 | # Avoid confusion: avoid the 'lw' above being put into the delay | |
21 | # slot for the jalr below! | |
22 | .set noreorder | |
23 | nop # 0028 nop | |
24 | .set reorder | |
25 | ||
26 | jal $25 # 002c jalr t9 | |
27 | # 0030 nop | |
28 | # 0034 lw gp,8(sp) | |
29 | .end func1 | |
30 | ||
31 | ||
32 | .text | |
33 | .ent func2 | |
34 | func2: | |
35 | .frame $sp,0,$31 | |
36 | .set noreorder | |
37 | .cpload $25 # 0038 lui gp,hi(_gp_disp) | |
38 | # 003c addiu gp,gp,lo(_gp_disp) | |
39 | # 0040 addu gp,gp,t9 | |
40 | .set reorder | |
41 | .cprestore 32768 # 0044 lui at,0x1 | |
42 | # 0048 addu at,at,sp | |
43 | # 004c sw gp,-32768(at) | |
44 | ||
45 | jal end # 0050 lw t9,got(.text)(gp) | |
46 | # 0054 nop | |
47 | # 0058 addiu t9,t9,lo(end) | |
48 | # 005c jalr t9 | |
49 | # 0060 nop | |
50 | # 0064 lui at,0x1 | |
51 | # 0068 addu at,at,sp | |
52 | # 006c lw gp,-32768(at) | |
53 | ||
54 | # Avoid confusion: avoid the 'lw' above being put into the delay | |
55 | # slot for the jalr below! | |
56 | .set noreorder | |
57 | nop # 0070 nop | |
58 | .set reorder | |
59 | ||
60 | jal $25 # 0074 jalr t9 | |
61 | # 0078 nop | |
62 | # 007c lui at,0x1 | |
63 | # 0080 addu at,at,sp | |
64 | # 0084 lw gp,-32768(at) | |
65 | .end func2 | |
66 | ||
67 | ||
68 | .text | |
69 | .ent func3 | |
70 | func3: | |
71 | .frame $sp,0,$31 | |
72 | .set noreorder | |
73 | .cpload $25 # 0088 lui gp,hi(_gp_disp) | |
74 | # 008c addiu gp,gp,lo(_gp_disp) | |
75 | # 0090 addu gp,gp,t9 | |
76 | .set reorder | |
77 | .cprestore 65536 # 0094 lui at,0x1 | |
78 | # 0098 addu at,at,sp | |
79 | # 009c sw gp,0(at) | |
80 | ||
81 | jal end # 00a0 lw t9,got(.text)(gp) | |
82 | # 00a4 nop | |
83 | # 00a8 addiu t9,t9,lo(end) | |
84 | # 00ac jalr t9 | |
85 | # 00b0 nop | |
86 | # 00b4 lui at,0x1 | |
87 | # 00b8 addu at,at,sp | |
88 | # 00bc lw gp,0(at) | |
89 | ||
90 | # Avoid confusion: avoid the 'lw' above being put into the delay | |
91 | # slot for the jalr below! | |
92 | .set noreorder | |
93 | nop # 00c0 nop | |
94 | .set reorder | |
95 | ||
96 | jal $25 # 00c4 jalr t9 | |
97 | # 00c8 nop | |
98 | # 00cc lui at,0x1 | |
99 | # 00d0 addu at,at,sp | |
100 | # 00d4 lw gp,0(at) | |
101 | ||
102 | .end func3 | |
103 | ||
104 | end: | |
105 | ||
106 | # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... | |
107 | .space 8 |