| comment "subroutine prologue" | |
| .macro gdbasm_enter | |
| stwu 1, -16(1) | |
| stw 31, 8(1) | |
| mr 31, 1 | |
| mflr 0 | |
| stw 0, 20(1) | |
| .endm | |
| comment "subroutine epilogue" | |
| .macro gdbasm_leave | |
| lwz 0, 20(1) | |
| mtlr 0 | |
| lwz 31, 8(1) | |
| lwz 1, 0(1) | |
| blr | |
| .endm | |
| .macro gdbasm_call subr | |
| bl \subr | |
| .endm | |
| .macro gdbasm_several_nops | |
| nop | |
| nop | |
| nop | |
| nop | |
| .endm | |
| comment "exit (0)" | |
| .macro gdbasm_exit0 | |
| comment "sys_exit" | |
| li 0, 1 | |
| sc | |
| .endm | |
| comment "crt0 startup" | |
| .macro gdbasm_startup | |
| .p2align 2 | |
| .endm | |
| comment "Declare a data variable" | |
| .purgem gdbasm_datavar | |
| .macro gdbasm_datavar name value | |
| .data | |
| \name: | |
| .long \value | |
| .endm |