1	comment "subroutine prologue"
2	.macro gdbasm_enter
3	alloc r33=ar.pfs,0,2,0,0
4	mov r32=b0
5	nop.i 0
6	.endm
7
8	comment "subroutine epilogue"
9	.macro gdbasm_leave
10	nop.m 0
11	mov ar.pfs=r33
12	mov b0=r32
13	nop.m 0
14	nop.f 0
15	br.ret.sptk.many b0
16	.endm
17
18	.macro gdbasm_call subr
19	nop.m 0
20	nop.f 0
21	br.call.sptk.many b0=\subr
22	.endm
23
24	.macro gdbasm_several_nops
25	nop.m 0
26	nop.i 0
27	nop.i 0
28	.endm
29
30	comment "exit (0)"
31	.macro gdbasm_exit0
32	break.m 0x0
33	nop.m 0
34	nop.i 0
35	.endm
36
37	comment "crt0 startup"
38	.macro gdbasm_startup
39	gdbasm_enter
40	mov r32=r0
41	nop.i 0
42	nop.i 0
43	.endm
44
45	comment "Declare a data variable"
46	.purgem gdbasm_datavar
47	.macro gdbasm_datavar name value
48	.data
49\name:
50	.long	\value
51	.endm
52