1 1.1 christos comment "subroutine prologue" 2 1.1 christos .macro gdbasm_enter 3 1.1 christos stw %rp, -20(%sp) 4 1.1 christos copy %r3, %r1 5 1.1 christos copy %sp, %r3 6 1.1 christos stwm %r1, 64(%sp) 7 1.1 christos .endm 8 1.1 christos 9 1.1 christos comment "subroutine epilogue" 10 1.1 christos .macro gdbasm_leave 11 1.1 christos ldw -20(%r3), %rp 12 1.1 christos bv %r0(%rp) 13 1.1 christos ldwm -64(%sp), %r3 14 1.1 christos .endm 15 1.1 christos 16 1.1 christos .macro gdbasm_call subr 17 1.1 christos bl \subr , %rp 18 1.1 christos nop 19 1.1 christos .endm 20 1.1 christos 21 1.1 christos .macro gdbasm_several_nops 22 1.1 christos nop 23 1.1 christos nop 24 1.1 christos nop 25 1.1 christos nop 26 1.1 christos .endm 27 1.1 christos 28 1.1 christos comment "exit (0)" 29 1.1 christos .macro gdbasm_exit0 30 1.1 christos comment "Don't know how to exit, but this will certainly halt..." 31 1.1 christos ldw 0(%r0), %r1 32 1.1 christos .endm 33 1.1 christos 34 1.1 christos comment "crt0 startup" 35 1.1 christos .macro gdbasm_startup 36 1.1 christos .align 4 37 1.1 christos .endm 38 1.1 christos 39 1.1 christos comment "Declare a data variable" 40 1.1 christos .purgem gdbasm_datavar 41 1.1 christos .macro gdbasm_datavar name value 42 1.1 christos .data 43 1.1 christos \name: 44 1.1 christos .long \value 45 1.1 christos .endm 46