| 	comment "subroutine declare" | 
 | 	.purgem gdbasm_declare | 
 | 	.macro gdbasm_declare name | 
 | 	.ent	\name | 
 | \name: | 
 | 	.endm | 
 |  | 
 | 	comment "subroutine prologue" | 
 | 	.macro gdbasm_enter | 
 | 	.frame	$30, 16, $26, 0 | 
 | 	.mask	0x04000000, -16 | 
 | 	ldgp	$gp, 0($27) | 
 | 	subq	$sp, 16, $sp | 
 | 	stq	$26, 0($sp) | 
 | 	.prologue 1 | 
 | 	.endm | 
 |  | 
 | 	comment "subroutine epilogue" | 
 | 	.macro gdbasm_leave | 
 | 	ldq	$26, 0($sp) | 
 | 	addq	$sp, 16, $sp | 
 | 	ret | 
 | 	.endm | 
 |  | 
 | 	comment "subroutine end" | 
 | 	.purgem gdbasm_end | 
 | 	.macro gdbasm_end name | 
 | 	.end	\name | 
 | 	.endm | 
 |  | 
 | 	comment "subroutine call" | 
 | 	/* Can't use ldgp here because the finish-frame test expects the | 
 | 	   pc to wind up on the next line.  That's ok, we're all local.  */ | 
 | 	.macro gdbasm_call subr | 
 | 	jsr	$26, \subr | 
 | 	.endm | 
 |  | 
 | 	.macro gdbasm_several_nops | 
 | 	nop | 
 | 	nop | 
 | 	nop | 
 | 	nop | 
 | 	.endm | 
 |  | 
 | 	comment "exit (0)" | 
 | 	.macro gdbasm_exit0 | 
 | 	lda	$16, 0($31) | 
 | 	lda	$0, 1($31) | 
 | 	callsys | 
 | 	.endm | 
 |  | 
 | 	comment "crt0 startup" | 
 | 	.macro gdbasm_startup | 
 | 	.frame	$31, 0, $31, 0 | 
 | 	.prologue | 
 | 	ldgp	$gp, 0($27) | 
 | 	.endm | 
 |  | 
 | 	comment "Declare a data variable" | 
 | 	.purgem gdbasm_datavar | 
 | 	.macro gdbasm_datavar name value | 
 | 	.data | 
 | \name: | 
 | 	.long	\value | 
 | 	.endm |