11 | 11 |
|
12 | 12 |
The `main` routine is always called. The thing that it will
|
13 | 13 |
be called by is the system, but the callgraph analyzer will
|
14 | |
simply consider it to be "marked as called".
|
|
14 |
simply consider it to be "marked as preserved".
|
15 | 15 |
|
16 | 16 |
| define main routine
|
17 | 17 |
| {
|
|
19 | 19 |
= {
|
20 | 20 |
= "main": {
|
21 | 21 |
= "potentially-called-by": [
|
22 | |
= "*marked*"
|
|
22 |
= "*preserved*"
|
23 | 23 |
= ],
|
24 | 24 |
= "potentially-calls": []
|
25 | 25 |
= }
|
|
38 | 38 |
= {
|
39 | 39 |
= "main": {
|
40 | 40 |
= "potentially-called-by": [
|
41 | |
= "*marked*"
|
|
41 |
= "*preserved*"
|
42 | 42 |
= ],
|
43 | 43 |
= "potentially-calls": [
|
44 | 44 |
= "other"
|
|
67 | 67 |
= {
|
68 | 68 |
= "main": {
|
69 | 69 |
= "potentially-called-by": [
|
70 | |
= "*marked*"
|
|
70 |
= "*preserved*"
|
71 | 71 |
= ],
|
72 | 72 |
= "potentially-calls": []
|
73 | 73 |
= },
|
74 | 74 |
= "other": {
|
75 | 75 |
= "potentially-called-by": [],
|
|
76 |
= "potentially-calls": []
|
|
77 |
= }
|
|
78 |
= }
|
|
79 |
|
|
80 |
If a routine is not called by another routine, but it is declared
|
|
81 |
explicitly as `preserved`, then it will not be considered unused,
|
|
82 |
and a compiler or linker will not be permitted to omit it from
|
|
83 |
the final executable. This is useful for interrupt routines and
|
|
84 |
such that really are used by some part of the system, even if not
|
|
85 |
directly by another SixtyPical routine.
|
|
86 |
|
|
87 |
| define main routine
|
|
88 |
| {
|
|
89 |
| }
|
|
90 |
|
|
|
91 |
| define other preserved routine
|
|
92 |
| {
|
|
93 |
| }
|
|
94 |
= {
|
|
95 |
= "main": {
|
|
96 |
= "potentially-called-by": [
|
|
97 |
= "*preserved*"
|
|
98 |
= ],
|
|
99 |
= "potentially-calls": []
|
|
100 |
= },
|
|
101 |
= "other": {
|
|
102 |
= "potentially-called-by": [
|
|
103 |
= "*preserved*"
|
|
104 |
= ],
|
76 | 105 |
= "potentially-calls": []
|
77 | 106 |
= }
|
78 | 107 |
= }
|
|
97 | 126 |
= {
|
98 | 127 |
= "main": {
|
99 | 128 |
= "potentially-called-by": [
|
100 | |
= "*marked*"
|
|
129 |
= "*preserved*"
|
101 | 130 |
= ],
|
102 | 131 |
= "potentially-calls": []
|
103 | 132 |
= },
|