1        comment "subroutine declare"
2        .purgem gdbasm_declare
3        .macro gdbasm_declare name
4	.section	".opd","aw"
5\name:
6	.quad .\name, .TOC.@tocbase, 0
7	.section	".text"
8	.type	\name, @function
9.\name:
10        .endm
11
12	comment "subroutine prologue"
13	.macro gdbasm_enter
14	stdu 1, -112(1)
15	mflr 0
16	std 0, 128(1)
17	.endm
18
19	comment "subroutine epilogue"
20	.macro gdbasm_leave
21	ld 0, 128(1)
22	mtlr 0
23	ld 1, 0(1)
24	blr
25	.endm
26
27	.macro gdbasm_call subr
28	bl \subr
29	nop
30	.endm
31
32	.macro gdbasm_several_nops
33	nop
34	nop
35	nop
36	nop
37	.endm
38
39	comment "exit (0)"
40	.macro gdbasm_exit0
41	comment "sys_exit"
42	li	0, 1
43	sc
44	.endm
45
46	comment "crt0 startup"
47	.macro gdbasm_startup
48	.p2align 2
49	.endm
50
51	comment "Declare a data variable"
52	.purgem gdbasm_datavar
53	.macro gdbasm_datavar name value
54	.section	".data"
55\name:
56	.long \value
57	.endm
58