Commit | Line | Data |
---|---|---|
acf4b816 RH |
1 | comment "subroutine declare" |
2 | .macro gdbasm_declare name | |
3 | .ent \name | |
4 | \name: | |
5 | .endm | |
6 | ||
7 | comment "subroutine prologue" | |
8 | .macro gdbasm_enter | |
9e9617a5 | 9 | .frame $30, 16, $26, 0 |
acf4b816 RH |
10 | .mask 0x04000000, -16 |
11 | ldgp $gp, 0($27) | |
12 | subq $sp, 16, $sp | |
13 | stq $26, 0($sp) | |
14 | .prologue 1 | |
15 | .endm | |
16 | ||
17 | comment "subroutine epilogue" | |
18 | .macro gdbasm_leave | |
19 | ldq $26, 0($sp) | |
20 | addq $sp, 16, $sp | |
21 | ret | |
22 | .endm | |
23 | ||
24 | comment "subroutine end" | |
25 | .macro gdbasm_end name | |
26 | .end \name | |
27 | .endm | |
28 | ||
9e9617a5 RH |
29 | comment "subroutine call" |
30 | /* Can't use ldgp here because the finish-frame test expects the | |
31 | pc to wind up on the next line. That's ok, we're all local. */ | |
acf4b816 RH |
32 | .macro gdbasm_call subr |
33 | jsr $26, \subr | |
acf4b816 RH |
34 | .endm |
35 | ||
36 | .macro gdbasm_several_nops | |
37 | nop | |
38 | nop | |
39 | nop | |
40 | nop | |
41 | .endm | |
42 | ||
43 | comment "exit (0)" | |
44 | .macro gdbasm_exit0 | |
45 | lda $16, 0($31) | |
46 | lda $0, 1($31) | |
47 | callsys | |
48 | .endm | |
49 | ||
50 | comment "crt0 startup" | |
51 | .macro gdbasm_startup | |
9e9617a5 RH |
52 | .frame $31, 0, $31, 0 |
53 | .prologue | |
acf4b816 RH |
54 | ldgp $gp, 0($27) |
55 | .endm | |
56 | ||
57 | comment "Declare a data variable" | |
58 | .macro gdbasm_datavar name value | |
59 | .data | |
60 | \name: | |
61 | .long \value | |
62 | .endm |