| comment "subroutine prologue" | |
| .macro gdbasm_enter | |
| push fp -> push lr | |
| addi sp,#-4 -> mv fp,sp | |
| .endm | |
| comment "subroutine epilogue" | |
| .macro gdbasm_leave | |
| addi sp,#4 -> pop lr | |
| pop fp -> jmp lr | |
| .endm | |
| .macro gdbasm_call subr | |
| bl \subr | |
| .endm | |
| .macro gdbasm_several_nops | |
| nop | |
| nop | |
| nop | |
| nop | |
| .endm | |
| comment "exit (0)" | |
| .macro gdbasm_exit0 | |
| ldi r0,#1 -> ldi r1,#0 | |
| ldi r2,#0 -> ldi r3,#0 | |
| trap #0 -> nop | |
| .endm | |
| comment "crt0 startup" | |
| .macro gdbasm_startup | |
| seth sp, #shigh(_stack) | |
| add3 sp, sp, #low(_stack) | |
| ldi fp,#0 | |
| .endm |