diff options
Diffstat (limited to 'ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s')
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s b/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s new file mode 100644 index 0000000..9904402 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s @@ -0,0 +1,49 @@ + .macro makestub,type,func,section + .text + .set \type + .type \func,@function + .ent \func +\func: + jr $31 + .end \func + + .section \section,"ax",@progbits + .set nomips16 + .type stub_for_\func,@function + .ent stub_for_\func +stub_for_\func: + .set noat + la $1,\func + jr $1 + .set at + .end stub_for_\func + .endm + + .macro makestubs,id + makestub nomips16,f\id,.mips16.call.F\id + makestub nomips16,g\id,.mips16.call.fp.G\id + makestub mips16,h\id,.mips16.fn.H\id + .endm + + .macro makecaller,type,func + .text + .set \type + .globl \func + .type \func,@function + .ent \func +\func: + jal f1 + jal f2 + jal g1 + jal g2 + jal h1 + jal h2 + .end \func + .endm + + makestubs 1 + makestubs 2 + makestubs 3 + + makecaller nomips16,caller1 + makecaller mips16,caller2 |