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