1 comment "subroutine prologue" 2 .macro gdbasm_enter 3 alloc r33=ar.pfs,0,2,0,0 4 mov r32=b0 5 nop.i 0 6 .endm 7 8 comment "subroutine epilogue" 9 .macro gdbasm_leave 10 nop.m 0 11 mov ar.pfs=r33 12 mov b0=r32 13 nop.m 0 14 nop.f 0 15 br.ret.sptk.many b0 16 .endm 17 18 .macro gdbasm_call subr 19 nop.m 0 20 nop.f 0 21 br.call.sptk.many b0=\subr 22 .endm 23 24 .macro gdbasm_several_nops 25 nop.m 0 26 nop.i 0 27 nop.i 0 28 .endm 29 30 comment "exit (0)" 31 .macro gdbasm_exit0 32 break.m 0x0 33 nop.m 0 34 nop.i 0 35 .endm 36 37 comment "crt0 startup" 38 .macro gdbasm_startup 39 gdbasm_enter 40 mov r32=r0 41 nop.i 0 42 nop.i 0 43 .endm 44 45 comment "Declare a data variable" 46 .macro gdbasm_datavar name value 47 .data 48\name: 49 .long \value 50 .endm 51