1 comment "subroutine prologue" 2 .macro gdbasm_enter 3 addi sp,#-16,sp 4 sti fp, @(sp,0) 5 mov sp, fp 6 movsg lr, gr5 7 sti gr5, @(fp,8) 8 .endm 9 10 comment "subroutine epilogue" 11 .macro gdbasm_leave 12 ldi @(fp,8), gr5 13 ld @(fp,gr0), fp 14 addi sp,#16,sp 15 jmpl @(gr5,gr0) 16 .endm 17 18 .macro gdbasm_call subr 19 call \subr 20 .endm 21 22 .macro gdbasm_several_nops 23 nop 24 nop 25 nop 26 nop 27 .endm 28 29 comment "exit (0)" 30 .macro gdbasm_exit0 31 comment "Don't know how to exit, but this will certainly halt..." 32 ldi @(gr0,0), gr5 33 .endm 34 35 comment "crt0 startup" 36 .macro gdbasm_startup 37 call .Lcall 38.Lcall: movsg lr, gr4 39 sethi #gprelhi(.Lcall), gr5 40 setlo #gprello(.Lcall), gr5 41 sub gr4, gr5, gr16 42 43 sethi #gprelhi(_stack), sp 44 setlo #gprello(_stack), sp 45 setlos #0, fp 46 add sp, gr16, sp 47 .endm 48 49 comment "Declare a data variable" 50 .macro gdbasm_datavar name value 51 .data 52\name: 53 .long \value 54 .endm 55