Mercurial > hg > index.cgi
annotate lwasm/list.c @ 472:e97f9a302c6a
Add emuext pragma and associated instructions.
This provides two emulator specific instructions ("log" and "debug") enabled
by the "emuext" pragma.
This is from a patch provided by tim Lindner <tlindner@macmess.org>. From
Tim's submission:
----
I stole the whole patch from Erik Gavriluk. I hope he doesn't mind. :)
The two instructions are "debug" and "log". They are enabled with
pragmas. I also added them to the manual.
Hopefully all is well.
----
Said Erik Gavriluk <erik@bombfactory.com> in response:
...happy to see them picked up in mainline (if you choose to do so)....
author | William Astle <lost@l-w.ca> |
---|---|
date | Thu, 01 Nov 2018 23:00:00 -0600 |
parents | 7d6eacd87370 |
children | 74d0c394666e |
rev | line source |
---|---|
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
1 /* |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
2 list.c |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
3 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
4 Copyright © 2010 William Astle |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
5 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
6 This file is part of LWTOOLS. |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
7 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
8 LWTOOLS is free software: you can redistribute it and/or modify it under the |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
9 terms of the GNU General Public License as published by the Free Software |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
10 Foundation, either version 3 of the License, or (at your option) any later |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
11 version. |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
12 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
13 This program is distributed in the hope that it will be useful, but WITHOUT |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
16 more details. |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
17 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
18 You should have received a copy of the GNU General Public License along with |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
19 this program. If not, see <http://www.gnu.org/licenses/>. |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
20 */ |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
21 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
22 #include <stdio.h> |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
23 #include <string.h> |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
24 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
25 #include <lw_alloc.h> |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
26 #include <lw_string.h> |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
27 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
28 #include "lwasm.h" |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
29 #include "instab.h" |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
30 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
31 void list_symbols(asmstate_t *as, FILE *of); |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
32 |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
33 /* |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
34 Do listing |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
35 */ |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
36 void do_list(asmstate_t *as) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
37 { |
50 | 38 line_t *cl, *nl, *nl2; |
106 | 39 FILE *of = NULL; |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
40 int i; |
50 | 41 unsigned char *obytes = NULL; |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
42 int obytelen = 0; |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
43 |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
44 char *tc; |
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
45 |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
46 if (!(as -> flags & FLAG_LIST)) |
106 | 47 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
48 of = NULL; |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
49 } |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
50 else |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
51 { |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
52 if (as -> list_file) |
106 | 53 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
54 if (strcmp(as -> list_file, "-") == 0) |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
55 { |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
56 of = stdout; |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
57 } |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
58 else |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
59 of = fopen(as -> list_file, "w"); |
106 | 60 } |
61 else | |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
62 of = stdout; |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
63 |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
64 if (!of) |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
65 { |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
66 fprintf(stderr, "Cannot open list file; list not generated\n"); |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
67 return; |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
68 } |
106 | 69 } |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
70 |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
71 for (cl = as -> line_head; cl; cl = nl) |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
72 { |
319
dc763f806dc4
Left truncate file names in list output.
William Astle <lost@l-w.ca>
parents:
273
diff
changeset
|
73 char *linespec; |
dc763f806dc4
Left truncate file names in list output.
William Astle <lost@l-w.ca>
parents:
273
diff
changeset
|
74 |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
75 nl = cl -> next; |
81
428068681cbf
Added nolist pragma to suppress listing output of non-code generating lines
Lost Wizard (lost@starbug3)
parents:
50
diff
changeset
|
76 if (CURPRAGMA(cl, PRAGMA_NOLIST)) |
428068681cbf
Added nolist pragma to suppress listing output of non-code generating lines
Lost Wizard (lost@starbug3)
parents:
50
diff
changeset
|
77 { |
428068681cbf
Added nolist pragma to suppress listing output of non-code generating lines
Lost Wizard (lost@starbug3)
parents:
50
diff
changeset
|
78 if (cl -> outputl <= 0) |
428068681cbf
Added nolist pragma to suppress listing output of non-code generating lines
Lost Wizard (lost@starbug3)
parents:
50
diff
changeset
|
79 continue; |
428068681cbf
Added nolist pragma to suppress listing output of non-code generating lines
Lost Wizard (lost@starbug3)
parents:
50
diff
changeset
|
80 } |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
81 if (cl -> noexpand_start) |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
82 { |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
83 obytelen = 0; |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
84 int nc = 0; |
273
1409debcb1a0
Fix crash on listing when nested noexpand macros are used
William Astle <lost@l-w.ca>
parents:
230
diff
changeset
|
85 for (nl = cl; nl; nl = nl -> next) |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
86 { |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
87 if (nl -> noexpand_start) |
273
1409debcb1a0
Fix crash on listing when nested noexpand macros are used
William Astle <lost@l-w.ca>
parents:
230
diff
changeset
|
88 nc += nl -> noexpand_start; |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
89 if (nl -> noexpand_end) |
273
1409debcb1a0
Fix crash on listing when nested noexpand macros are used
William Astle <lost@l-w.ca>
parents:
230
diff
changeset
|
90 nc -= nl -> noexpand_end; |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
91 |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
92 if (nl -> outputl > 0) |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
93 obytelen += nl -> outputl; |
227
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
94 if (nl -> warn) |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
95 { |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
96 lwasm_error_t *e; |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
97 for (e = nl -> warn; e; e = e -> next) |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
98 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
99 if (of != stdout) printf("Warning (%s:%d): %s\n", cl -> linespec, cl -> lineno, e -> mess); |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
100 if (of) fprintf(of, "Warning: %s\n", e -> mess); |
227
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
101 } |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
102 } |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
103 if (nc == 0) |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
104 break; |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
105 } |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
106 obytes = lw_alloc(obytelen); |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
107 nc = 0; |
50 | 108 for (nl2 = cl; ; nl2 = nl2 -> next) |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
109 { |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
110 int i; |
50 | 111 for (i = 0; i < nl2 -> outputl; i++) |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
112 { |
50 | 113 obytes[nc++] = nl2 -> output[i]; |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
114 } |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
115 if (nc >= obytelen) |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
116 break; |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
117 } |
273
1409debcb1a0
Fix crash on listing when nested noexpand macros are used
William Astle <lost@l-w.ca>
parents:
230
diff
changeset
|
118 if (nl) |
1409debcb1a0
Fix crash on listing when nested noexpand macros are used
William Astle <lost@l-w.ca>
parents:
230
diff
changeset
|
119 nl = nl -> next; |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
120 } |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
121 else |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
122 { |
227
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
123 if (cl -> warn) |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
124 { |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
125 lwasm_error_t *e; |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
126 for (e = cl -> warn; e; e = e -> next) |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
127 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
128 if (of != stdout) printf("Warning (%s:%d): %s\n", cl -> linespec, cl -> lineno, e -> mess); |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
129 if (of) fprintf(of, "Warning: %s\n", e -> mess); |
227
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
130 } |
721a5ea5e36a
Make warnings show up in assembly listings.
William Astle <lost@l-w.ca>
parents:
194
diff
changeset
|
131 } |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
132 obytelen = cl -> outputl; |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
133 if (obytelen > 0) |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
134 { |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
135 obytes = lw_alloc(obytelen); |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
136 memmove(obytes, cl -> output, cl -> outputl); |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
137 } |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
138 } |
357
b6933dc299e6
Make listings show the address for lines that only define symbols
William Astle <lost@l-w.ca>
parents:
319
diff
changeset
|
139 if ((cl -> len < 1 && cl -> dlen < 1) && obytelen < 1 && (cl -> symset == 1 || cl -> sym == NULL) ) |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
140 { |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
141 if (cl -> soff >= 0) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
142 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
143 if (of) fprintf(of, "%04Xs ", cl -> soff & 0xffff); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
144 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
145 else if (cl -> dshow >= 0) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
146 { |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
147 if (cl -> dsize == 1) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
148 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
149 if (of) fprintf(of, " %02X ", cl -> dshow & 0xff); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
150 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
151 else |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
152 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
153 if (of) fprintf(of, " %04X ", cl -> dshow & 0xff); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
154 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
155 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
156 else if (cl -> dptr) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
157 { |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
158 lw_expr_t te; |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
159 te = lw_expr_copy(cl -> dptr -> value); |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
160 as -> exportcheck = 1; |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
161 as -> csect = cl -> csect; |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
162 lwasm_reduce_expr(as, te); |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
163 as -> exportcheck = 0; |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
164 if (lw_expr_istype(te, lw_expr_type_int)) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
165 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
166 if (of) fprintf(of, " %04X ", lw_expr_intval(te) & 0xffff); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
167 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
168 else |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
169 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
170 if (of) fprintf(of, " ???? "); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
171 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
172 lw_expr_destroy(te); |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
173 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
174 else |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
175 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
176 if (of) fprintf(of, " "); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
177 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
178 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
179 else |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
180 { |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
181 lw_expr_t te; |
142
697bc543368c
Implement distinction between . and * for OS9 modules
lost@l-w.ca
parents:
106
diff
changeset
|
182 if (instab[cl -> insn].flags & lwasm_insn_setdata) |
697bc543368c
Implement distinction between . and * for OS9 modules
lost@l-w.ca
parents:
106
diff
changeset
|
183 te = lw_expr_copy(cl -> daddr); |
697bc543368c
Implement distinction between . and * for OS9 modules
lost@l-w.ca
parents:
106
diff
changeset
|
184 else |
697bc543368c
Implement distinction between . and * for OS9 modules
lost@l-w.ca
parents:
106
diff
changeset
|
185 te = lw_expr_copy(cl -> addr); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
186 as -> exportcheck = 1; |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
187 as -> csect = cl -> csect; |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
188 lwasm_reduce_expr(as, te); |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
189 as -> exportcheck = 0; |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
190 // if (of) fprintf(of, "%s\n", lw_expr_print(te)); |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
191 if (of) fprintf(of, "%04X%c", lw_expr_intval(te) & 0xffff, ((cl -> inmod || (cl -> dlen != cl -> len)) && instab[cl -> insn].flags & lwasm_insn_setdata) ? '.' : ' '); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
192 lw_expr_destroy(te); |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
193 for (i = 0; i < obytelen && i < 8; i++) |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
194 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
195 if (of) fprintf(of, "%02X", obytes[i]); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
196 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
197 for (; i < 8; i++) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
198 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
199 if (of) fprintf(of, " "); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
200 } |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
201 if (of) fprintf(of, " "); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
202 } |
376 | 203 |
204 /* the format specifier below is deliberately chosen so that the start of the line text is at | |
205 a multiple of 8 from the start of the list line */ | |
206 | |
207 #define max_linespec_len 17 | |
208 | |
209 // trim "include:" if it appears | |
442
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
210 if (as -> listnofile) |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
211 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
212 if (of) fprintf(of, "%05d ", cl->lineno); |
442
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
213 } |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
214 else |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
215 { |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
216 linespec = cl -> linespec; |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
217 if ((strlen(linespec) > 8) && (linespec[7] == ':')) linespec += 8; |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
218 while (*linespec == ' ') linespec++; |
376 | 219 |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
220 if (of) fprintf(of, "(%*.*s):%05d ", max_linespec_len, max_linespec_len, linespec, cl->lineno); |
442
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
221 } |
61580fc48f98
Add option to omit file names from lwasm listings
William Astle <lost@l-w.ca>
parents:
390
diff
changeset
|
222 |
376 | 223 if (CURPRAGMA(cl, PRAGMA_CC)) |
224 { | |
225 as->cycle_total = 0; | |
226 } | |
227 | |
228 /* display cycle counts */ | |
229 char s[64] = ""; | |
230 if (CURPRAGMA(cl, PRAGMA_C) || CURPRAGMA(cl, PRAGMA_CD)) | |
319
dc763f806dc4
Left truncate file names in list output.
William Astle <lost@l-w.ca>
parents:
273
diff
changeset
|
231 { |
376 | 232 if (cl->cycle_base != 0) |
233 { | |
234 char ch = '('; | |
235 if (CURPRAGMA(cl, PRAGMA_6809)) ch = '['; | |
236 | |
237 if (CURPRAGMA(cl, PRAGMA_CD) && cl->cycle_flags & CYCLE_ADJ) | |
238 { | |
239 sprintf(s, "%c%d+%d", ch, cl->cycle_base, cl->cycle_adj); /* detailed cycle count */ | |
240 } | |
241 else | |
242 { | |
243 sprintf(s, "%c%d", ch, cl->cycle_base + cl->cycle_adj); /* normal cycle count*/ | |
244 } | |
245 | |
246 if (cl->cycle_flags & CYCLE_ESTIMATED) | |
247 strcat(s, "+?"); | |
248 | |
249 as->cycle_total += cl->cycle_base + cl->cycle_adj; | |
250 | |
251 ch = ')'; | |
252 if (CURPRAGMA(cl, PRAGMA_6809)) ch = ']'; | |
253 sprintf(s, "%s%c", s, ch); | |
254 } | |
319
dc763f806dc4
Left truncate file names in list output.
William Astle <lost@l-w.ca>
parents:
273
diff
changeset
|
255 } |
376 | 256 |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
257 if (of) fprintf(of, "%-8s", s); |
376 | 258 |
259 if (CURPRAGMA(cl, PRAGMA_CT)) | |
260 { | |
261 if (cl->cycle_base != 0) | |
262 { | |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
263 if (of) fprintf(of, "%-8d", as->cycle_total); |
376 | 264 } |
265 else | |
266 { | |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
267 if (of) fprintf(of, " "); |
376 | 268 } |
269 } | |
270 | |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
271 if (as -> tabwidth == 0) |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
272 { |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
273 fputs(cl -> ltext, of); |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
274 } |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
275 else |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
276 { |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
277 i = 0; |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
278 for (tc = cl -> ltext; *tc; tc++) |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
279 { |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
280 if ((*tc) == '\t') |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
281 { |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
282 if (i % as -> tabwidth == 0) |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
283 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
284 if (of) fputc(' ', of); |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
285 i++; |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
286 } |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
287 while (i % as -> tabwidth) |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
288 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
289 if (of) fputc(' ', of); |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
290 i++; |
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
291 } |
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
292 } |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
293 else |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
294 { |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
295 if (of) fputc(*tc, of); |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
296 i++; |
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
297 } |
14
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
298 } |
5ecdc4dae84d
Brought forward patch to make tabs in listings always display as 8 spaces wide by converting tabs to spaces
lost@l-w.ca
parents:
0
diff
changeset
|
299 } |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
300 if (of) fputc('\n', of); |
390
1ebb5a0b2874
Add option to specify tab width in listing
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
301 |
194
f8b33b3a45ac
Fix noexpand macro listings to show all bytes output
William Astle <lost@l-w.ca>
parents:
142
diff
changeset
|
302 if (obytelen > 8) |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
303 { |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
304 for (i = 8; i < obytelen; i++) |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
305 { |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
306 if (i % 8 == 0) |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
307 { |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
308 if (i != 8) |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
309 { |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
310 if (of) fprintf(of, "\n "); |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
311 } |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
312 else |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
313 { |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
314 if (of) fprintf(of, " "); |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
315 } |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
316 } |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
317 if (of) fprintf(of, "%02X", obytes[i]); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
318 } |
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
319 if (i > 8) |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
320 if (of) fprintf(of, "\n"); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
321 } |
49
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
322 lw_free(obytes); |
bd8b3fbd1e28
Added ability to flag macros as "noexpand" so they are not expanded in the listing
lost@l-w.ca
parents:
42
diff
changeset
|
323 obytes = NULL; |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
324 } |
230
e09985968e64
Don't suppress symbol listing in unicorns mode
William Astle <lost@l-w.ca>
parents:
227
diff
changeset
|
325 if ((as -> flags & FLAG_SYMBOLS)) |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
326 list_symbols(as, of); |
457
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
327 if (of && of != stdout) |
7d6eacd87370
Make warnings still show when listings are not enabled.
William Astle <lost@l-w.ca>
parents:
456
diff
changeset
|
328 fclose(of); |
0
2c24602be78f
Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff
changeset
|
329 } |