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