| comment "subroutine prologue" | |
| .macro gdbasm_enter | |
| add -8,sp | |
| st.w r31,4[sp] | |
| st.w r29,0[sp] | |
| mov sp,r29 | |
| .endm | |
| comment "subroutine epilogue" | |
| .macro gdbasm_leave | |
| mov r29,sp | |
| ld.w 0[sp],r29 | |
| ld.w 4[sp],r31 | |
| add 8,sp | |
| jmp [r31] | |
| .endm | |
| .macro gdbasm_call subr | |
| jarl \subr,r31 | |
| .endm | |
| .macro gdbasm_several_nops | |
| nop | |
| nop | |
| nop | |
| nop | |
| .endm | |
| comment "exit (0)" | |
| .macro gdbasm_exit0 | |
| halt | |
| .endm | |
| comment "crt0 startup" | |
| .macro gdbasm_startup | |
| movea 255,r0,r20 | |
| mov r0, r21 | |
| ori 65535, r0, r21 | |
| movhi 32, r0, sp | |
| .endm | |