1	comment "subroutine prologue"
2	.macro gdbasm_enter
3	st r11,@-sp
4	st r13,@-sp
5	mv r11,sp
6	.endm
7
8	comment "subroutine epilogue"
9	.macro gdbasm_leave
10	add3 sp,r11,0
11	ld   r13,@sp+
12	ld   r11,@sp+
13	jmp  r13
14	.endm
15
16	.macro gdbasm_call subr
17	bl \subr
18	.endm
19
20	.macro gdbasm_several_nops
21	nop
22	nop
23	nop
24	nop
25	.endm
26
27	comment "exit (0)"
28	.macro gdbasm_exit0
29	ldi r4, 1
30	ldi r0, 0
31	trap 15
32	.endm
33
34	comment "crt0 startup"
35	.macro gdbasm_startup
36; R14 always contains memory base address (0)
37
38	ldi     r14,0
39
40; Set the USER and SYSTEM stack pointers.
41
42	ldi     r0, 0           ; zero arguments
43	ldi     r1, 0
44	mvtc    r0, psw         ; select SPI and set it
45	ldi     sp, _stack
46	ldi     r10, 0x8000     ; select SPU/FP and set it
47	mvtc	r10, psw || ldi	r11, 0;  clear stack frame
48	ldi     sp, _stack - 0x200
49	ldi     r13, 0
50
51	st	r11, @-sp
52	st	r13, @-sp
53;	mv	r11, sp
54
55	.endm
56