diff options
Diffstat (limited to 'ld/testsuite/ld-mips-elf/mips16-pic-3.inc')
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips16-pic-3.inc | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ld/testsuite/ld-mips-elf/mips16-pic-3.inc b/ld/testsuite/ld-mips-elf/mips16-pic-3.inc new file mode 100644 index 0000000..9611611 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips16-pic-3.inc @@ -0,0 +1,59 @@ + .macro test_call,name + .set mips16 + .text + .ent test_\name +test_\name: + jal \name + .end test_\name + .endm + + .macro call_stub,name + .set nomips16 + .section .mips16.call.\name, "ax", @progbits + .ent __call_\name +__call_\name: + la $25,\name + jr $25 + mtc1 $4,$f12 + .end __call_\name + + test_call \name + .endm + + .macro call_fp_stub,name + .set nomips16 + .section .mips16.call.fp.\name, "ax", @progbits + .ent __call_fp_\name +__call_fp_\name: + move $18,$31 + la $25,\name + jalr $25 + mtc1 $4,$f12 + mfc1 $2,$f0 + jr $18 + nop + .end __call_fp_\name + + test_call \name + .endm + + .macro lstub,name,mode + .set \mode + .text + .ent \name +\name: + jr $31 + nop + .end \name + .endm + + .macro hstub,name,mode + .globl \name + .hidden \name + lstub \name, \mode + .endm + + .macro gstub,name,mode + .globl \name + lstub \name, \mode + .endm |