Commit | Line | Data |
---|---|---|
b314ec0e RS |
1 | .macro makestub,type,func,section |
2 | .text | |
3 | .set \type | |
4 | .type \func,@function | |
5 | .ent \func | |
6 | \func: | |
7 | jr $31 | |
8 | .end \func | |
9 | ||
10 | .section \section,"ax",@progbits | |
11 | .set nomips16 | |
12 | .type stub_for_\func,@function | |
13 | .ent stub_for_\func | |
14 | stub_for_\func: | |
15 | .set noat | |
16 | la $1,\func | |
17 | jr $1 | |
18 | .set at | |
19 | .end stub_for_\func | |
20 | .endm | |
21 | ||
22 | .macro makestubs,id | |
23 | makestub nomips16,f\id,.mips16.call.F\id | |
24 | makestub nomips16,g\id,.mips16.call.fp.G\id | |
25 | makestub mips16,h\id,.mips16.fn.H\id | |
26 | .endm | |
27 | ||
28 | .macro makecaller,type,func | |
29 | .text | |
30 | .set \type | |
31 | .globl \func | |
32 | .type \func,@function | |
33 | .ent \func | |
34 | \func: | |
35 | jal f1 | |
36 | jal f2 | |
37 | jal g1 | |
38 | jal g2 | |
39 | jal h1 | |
40 | jal h2 | |
41 | .end \func | |
42 | .endm | |
43 | ||
44 | makestubs 1 | |
45 | makestubs 2 | |
46 | makestubs 3 | |
47 | ||
48 | makecaller nomips16,caller1 | |
49 | makecaller mips16,caller2 |