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