1 comment "subroutine declare" 2 .purgem gdbasm_declare 3 .macro gdbasm_declare name 4 .align 2 5 .ent \name 6 .type \name,@function 7\name: 8 .endm 9 10 comment "subroutine prologue" 11 .macro gdbasm_enter 12 .frame $fp, 32, $31 13 .mask 0xd0000000,-4 14 .set noreorder 15 .cpload $25 16 .set reorder 17 subu $sp, $sp, 32 18 .cprestore 16 19 sw $31, 28($sp) 20 sw $fp, 24($sp) 21 sw $28, 20($sp) 22 move $fp, $sp 23 .endm 24 25 comment "subroutine epilogue" 26 .macro gdbasm_leave 27 lw $31, 28($sp) 28 lw $fp, 24($sp) 29 .set noreorder 30 .set nomacro 31 j $31 32 addu $sp, $sp, 32 33 .set macro 34 .set reorder 35 .endm 36 37 comment "subroutine end" 38 .purgem gdbasm_end 39 .macro gdbasm_end name 40 .end \name 41 .endm 42 43 .macro gdbasm_call subr 44 la $25, \subr 45 jal $31, $25 46 .endm 47 48 .macro gdbasm_several_nops 49 nop 50 nop 51 nop 52 nop 53 .endm 54 55 comment "exit (0)" 56 .macro gdbasm_exit0 57 comment "Don't know how to exit, but this will certainly halt..." 58 lw $2, 0($0) 59 .endm 60 61 comment "crt0 startup" 62 .macro gdbasm_startup 63 move $fp, $sp 64 .endm 65