| .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 |