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