| comment "subroutine declare" |
| .purgem gdbasm_declare |
| .macro gdbasm_declare name |
| .align 2 |
| .ent \name |
| .type \name,@function |
| \name: |
| .endm |
| |
| comment "subroutine prologue" |
| .macro gdbasm_enter |
| .frame $fp, 32, $31 |
| .mask 0xd0000000,-4 |
| .set noreorder |
| .cpload $25 |
| .set reorder |
| subu $sp, $sp, 32 |
| .cprestore 16 |
| sw $31, 28($sp) |
| sw $fp, 24($sp) |
| sw $28, 20($sp) |
| move $fp, $sp |
| .endm |
| |
| comment "subroutine epilogue" |
| .macro gdbasm_leave |
| lw $31, 28($sp) |
| lw $fp, 24($sp) |
| .set noreorder |
| .set nomacro |
| j $31 |
| addu $sp, $sp, 32 |
| .set macro |
| .set reorder |
| .endm |
| |
| comment "subroutine end" |
| .purgem gdbasm_end |
| .macro gdbasm_end name |
| .end \name |
| .endm |
| |
| .macro gdbasm_call subr |
| la $25, \subr |
| jal $31, $25 |
| .endm |
| |
| .macro gdbasm_several_nops |
| nop |
| nop |
| nop |
| nop |
| .endm |
| |
| comment "exit (0)" |
| .macro gdbasm_exit0 |
| comment "Don't know how to exit, but this will certainly halt..." |
| lw $2, 0($0) |
| .endm |
| |
| comment "crt0 startup" |
| .macro gdbasm_startup |
| move $fp, $sp |
| .endm |