1
0
mirror of https://github.com/cc65/cc65.git synced 2024-08-20 09:29:12 +00:00
Commit Graph

2307 Commits

Author SHA1 Message Date
uz
e7fe36399b Grow the line info collection as needed before actually adding items. This
reduces memory consumption.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5164 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-14 20:05:20 +00:00
uz
17e2276f38 Adapted to new line infos and spans as written to the object file by the
assembler.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5163 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-14 19:24:03 +00:00
uz
b8549f0af8 Complete redesign of line info generation. Uses spans instead of a fragment
list as before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5162 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-14 19:23:16 +00:00
uz
e67c802193 Make the parameter for HT_GetKey const.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5161 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-14 19:21:44 +00:00
uz
27964254dc Adjust to recent changes in the hash modules.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5160 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-12 16:22:28 +00:00
uz
6b79f5bbb1 Do also remove the Owner pointer from the HashNode making it ~50% of its
original size.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5159 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-12 16:18:56 +00:00
uz
f571ec44ae Require that the hash node must be the first element of the structure to be
managed in a hash table. This gives smaller code and a ~25% size reduction of
the HashNode structure which might become an advantage if many elements are
hashed.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5158 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-12 16:13:10 +00:00
uz
762d4d9ea2 Grow the Span collection before adding spans for the segments. This means that
in most cases the colection will have the optimal size.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5157 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-12 16:10:34 +00:00
uz
b8d43cee42 Tracked rename of hashstr -> hashfunc.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5156 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-12 15:36:53 +00:00
uz
b8e68bed95 Renamed hashstr to hashfunc and added an integer hash function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5155 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-12 15:32:08 +00:00
uz
434c818d20 Fixed an error in the INFO line.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5154 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-11 21:58:12 +00:00
uz
54ffc25a53 Removed an unused function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5153 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-11 21:23:37 +00:00
uz
b4967d359f Output spans to the debug info file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5152 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-11 17:11:45 +00:00
uz
3e6f9a212b Accept the number of spans in the INFO line.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5151 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-11 17:04:29 +00:00
uz
9ecccaa69d More work on the implementation of spans.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5150 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-11 16:52:52 +00:00
uz
efc59ff27b Implement some span API functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5149 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 22:17:41 +00:00
uz
d8feaf2e54 Started to add spans.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5148 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 21:17:45 +00:00
uz
ebfa369319 Postprocess module infos. Add new index for modules sorted by name.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5147 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 20:44:20 +00:00
uz
060b297a78 Renamed DoneCollection -> CollDone and InitCollection -> CollInit.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5146 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 14:20:45 +00:00
uz
9d2538f12b Postprocess file infos. New function cc65_sourceinfo_bymodule.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5145 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 14:08:18 +00:00
uz
d9a35e9652 Prepare the collection for storage of ids.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5144 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 13:32:31 +00:00
uz
07f795fa78 Postprocess scope infos. New function cc65_scope_bymodule.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5143 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 10:36:37 +00:00
uz
3e42ba1a87 Bump the version number. Fix line number counting. Resolve ids to pointers in
several places.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5142 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-10 10:13:31 +00:00
uz
604f74c5c2 Added processing of modules, libraries, etc. Many other changes for new debug
info format.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5141 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-09 19:11:38 +00:00
uz
36c99befcc Output ids for line infos to the debug info file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5140 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-09 18:48:02 +00:00
uz
a3ae02b5b7 Use symbolic names when writing the scope type to the debug info file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5139 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-08 21:07:45 +00:00
uz
067f6d2e27 Much more work reading the new information.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5138 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-08 21:07:13 +00:00
uz
e9be9e3d63 Use "lib" instead of "library".
git-svn-id: svn://svn.cc65.org/cc65/trunk@5137 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-08 17:18:52 +00:00
uz
07cd427110 Output information about the item counts in the debug info file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5136 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-08 17:15:18 +00:00
uz
57e39e0e04 Preparations for the new format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5135 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 21:08:45 +00:00
uz
472c21d7ff Some improvements for spans.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5134 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 20:01:40 +00:00
uz
bf8f23d5f4 Handle scopes with a label correctly. Add the label to the debug info file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5133 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 18:48:08 +00:00
uz
8f969056e1 Handle scopes with a label correctly.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5132 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 18:47:38 +00:00
uz
49b66ebd2b New flag bit that tells if a scope has a label.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5131 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 18:47:21 +00:00
uz
af8fbf8d62 Fox scopes that have a label (= .PROC), write the label to the debug
information.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5130 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 18:46:56 +00:00
uz
c19491035b Bump the version number of the generated debug file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5129 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 17:59:33 +00:00
uz
17e9b81045 Debug info: Make file info ids continous. Output modules that use a file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5128 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 13:15:24 +00:00
uz
af3a5e6e15 Output library information to the debug file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5127 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-07 11:33:28 +00:00
uz
b418fdf985 Removed the Next pointer which is no longer necessary.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5126 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-06 12:32:10 +00:00
uz
6172979c1c Manage the segments in a collection.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5125 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-05 13:59:26 +00:00
uz
9f02a29dfa Use a collection to manage the segments.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5124 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-05 13:45:33 +00:00
uz
a17d11cba8 Central management of the debug info base ids.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5123 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-05 13:09:13 +00:00
uz
a87d8ec233 More aliases for attribute names.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5122 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-05 12:34:08 +00:00
uz
f912ea4010 Introduce some shorter aliases for attribute names in the debug info file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5121 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-05 12:33:21 +00:00
uz
317676d868 Output module info.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5120 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-05 12:09:11 +00:00
uz
3593eb2869 More work on scope suport.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5119 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 18:47:01 +00:00
uz
d1efe1af90 Adjust code to C99 regarding the main function: Not returning anything in a
main function with an int return type is identical to returning zero.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5118 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 17:18:06 +00:00
uz
2f75733e43 Rearrange debug info output. Add scopes to the debug info.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5117 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 15:58:54 +00:00
uz
871873b1ac Read Sections before Scopes, because the later will reference the former.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5116 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 13:20:45 +00:00
uz
04a0dafe25 Use the Span structure also for scopes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5115 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 13:14:26 +00:00
uz
e9d9ba92b0 The spans do now contain the size of a span, no longer the end offset.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5114 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 12:51:44 +00:00
uz
31d2fff060 Rename SegRange to span. Write out the size instead of the end offset so we
can save some bytes in the object file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5113 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 12:49:59 +00:00
uz
f04d65a662 Generalized the CodeRange structure used for line infos and renamed it to Span.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5112 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-04 12:31:37 +00:00
uz
f0eaf6b1b4 Fixed an off-by-one error.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5111 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-03 19:37:53 +00:00
uz
3cf41ed2e7 Fix a problem reported by Christopher Pow: cc65_lineinfo_byname doesn't handle
multiple line infos for one line correctly. It did only return one randomly
chosen line info instead of all.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5110 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-03 18:39:08 +00:00
uz
ca0877adb6 Fixed an error in the special purpose allocator in expr.c.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5109 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-02 16:46:47 +00:00
uz
1df46aed11 Fixed a memory leak.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5108 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-02 16:16:37 +00:00
uz
7d69135896 Fixed another memory leak.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5107 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-02 15:00:33 +00:00
uz
c25694f54d Fixed another memory leak.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5106 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-02 14:49:33 +00:00
uz
1f95085ffe Read scopes from the object files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5103 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-01 20:54:42 +00:00
uz
67692e51f1 Fixed a rather large memory leak.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5102 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-01 20:49:59 +00:00
uz
2b32c14661 Preparations for adding scopes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5100 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 21:32:46 +00:00
uz
0dbe4454a5 There is no longer a scope type SCOPE_PROC.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5099 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 17:11:10 +00:00
uz
97cb025964 Remove SCOPE_PROC. It's a .SCOPE with an owner symbol.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5098 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 17:10:33 +00:00
uz
72a13e1a21 Write scopes in id order, so we don't need to write out the id itself. Add the
size of the scope to the output file and a flag bit that tells us if the scope
has a size.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5097 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 15:37:51 +00:00
uz
8ec6f66bf0 Output the scope type in readable format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5096 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 14:01:27 +00:00
uz
4191eb7718 Move scope type definitions to common/
git-svn-id: svn://svn.cc65.org/cc65/trunk@5095 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 14:01:11 +00:00
uz
dd3a841b1a Add the parent scope/symbol to the debug symbol attributes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5094 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 13:28:54 +00:00
uz
4ad597ff39 Allow to dump scope information.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5092 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 12:25:44 +00:00
uz
359e119a6b Write scope information to the object file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5091 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 12:25:02 +00:00
uz
928f675e4b Small change in the vector font format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5088 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-17 17:15:54 +00:00
uz
e33bd9a44c Check for end-of-data while reading the vector definitions. Other small
changes.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5087 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-17 16:46:06 +00:00
uz
fea0ac67c3 Parse #pragma align() (does nothing currently).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5082 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-12 19:35:49 +00:00
uz
bf6b0b9eb7 Check for macros within .STRUCT/.ENUM.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5076 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-08 09:55:17 +00:00
uz
241afdc738 Don't search twice for a macro.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5075 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-08 09:22:26 +00:00
uz
d18fd210aa The line counter got confused for lines with more than 256 chars. Removed the
restriction alltogether, so lines with arbitrary length should be handled
correctly. Not that it is of much use for an assembler, but this has really
been a somewhat ancient limitation.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5072 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-07 20:07:29 +00:00
uz
a08222048a Initialize variables to avoid compiler warnings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5070 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-03 12:24:54 +00:00
uz
3f2f3baa27 Removed an unused function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5066 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-17 19:58:53 +00:00
uz
44b829cc01 Read and allow access to the segment for (segment based) symbols.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5063 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-14 21:18:44 +00:00
uz
c768fc7373 For segment based symbols, add information about the segment to the debug info.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5062 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-14 19:25:50 +00:00
uz
82bab7fb89 Merge duplicate file entries (same name, size and timestamp).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5061 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-14 18:26:22 +00:00
uz
57fb2571a1 Accept a file attribute for symbols but don't do anything with it for now.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5060 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-14 16:45:48 +00:00
uz
244ca4daf7 Allow to leave of the end address of a range if it is identical to the start
address. Currently unused.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5059 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 21:43:26 +00:00
uz
51ccf2d576 Accept a segment attribute for symbols, but don't do anything with it for now.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5058 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 21:16:40 +00:00
uz
795d9e1a1c Mark the symbol that is the name of a scope with the size of that scope
(previously only the scope itself had that size).
Pass the size of symbols through the object file to the linker. Bump the
object file version and adjust object file reading tools (od65, ar65) to this
change.
Read the size in the linker and output it in the debug info.
Bump the minor version number of the debug info. Read the size and allow to
access it via the API. Do better version checking for the debug info and try
to be smarter when encountering unknown keywords to improve support for newer
minor versions.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5057 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 18:43:50 +00:00
uz
79fad36b41 Use slightly optimized character translation settings for the CBM machines.
Suggested by Greg King.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5054 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 12:13:08 +00:00
uz
00f57bbc87 Fix/workaround for a problem with nested macros.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5053 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 10:03:26 +00:00
uz
4709e8251e Fixed the same problem as in the last change for the final token of .define
style macros.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5052 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 08:55:48 +00:00
uz
ff9841d7b5 Fix wrong line info sometimes output for macros: When macro parameters were
expanded, the line info came from the parameter replacement list, but was
marked as coming from the macro. Now parameter replacement lists don't change
the line info.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5051 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 08:53:41 +00:00
uz
d1426aaa43 Finished implemenation of commands to delete macros. Added the new commands to
the docs.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5050 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-12 21:29:07 +00:00
uz
eaa45269e7 First implementation of .UNDEF for deleting a macro.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5049 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-11 22:18:48 +00:00
uz
279ad05150 Added routines to remove an entry from the hash table.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5048 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-11 18:17:54 +00:00
uz
ce0d51d55a Fixed an error: An .ELSE without an .IF caused a null pointer dereference.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5047 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-09 11:27:33 +00:00
uz
acb1699017 Improve the performance of the routine that determines the overall .IF
condition.
            


git-svn-id: svn://svn.cc65.org/cc65/trunk@5046 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-09 11:23:37 +00:00
uz
15fc094c7a Add recursive scanning for .define style macros: Replacement using .define is
done not only when the macro is parsed, but also when it is expanded.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5045 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-08 21:09:40 +00:00
uz
7c926ada70 Fixed a problem: Removing duplicate file entries (entries with the same name)
isn't allowed, since these entries may be referenced. Since we must be able to
handle duplicate names anyway (they may be old/new versions of one file), we
can also have duplicates in general. Cleanup the list using time stamps and
sizes before returning it to the caller.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5044 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-08 20:53:29 +00:00
uz
c65292b78d Fixed an error: The amount of fill bytes for a section was declared as an
unsigned char, so larger values got truncated making alignments larger than
$100 unreliable.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5042 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-08 18:33:34 +00:00
uz
c17816fafd Added more debug output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5041 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-08 18:28:21 +00:00
uz
8cb4788e13 Fix a compile problem with the Watcom compiler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5040 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-08 06:51:05 +00:00
uz
5db7604eff Don't allow too many nested macro expansions. Until now, it was possible to
send the assembler in an endless loop by a recursive macro without end
condition or a set of macros that called each other.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5038 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-07 21:17:35 +00:00
uz
f8089b98c1 Limit the number of additional line infos printed in case of an error or
warning.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5037 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-07 21:15:16 +00:00
uz
7db7f34d91 Fix an error with .ELSEIF: The condition must only be evaluated if the .ELSEIF
is inside an .IF which had a TRUE condition.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5036 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-07 17:16:18 +00:00
uz
f0a6653bd1 Added a comment about the fix explaining why the given order of calls is necessary.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5035 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:47:28 +00:00
uz
46f1285208 Fixed an error in macro expansion: If the first token after the macro name was
a .define style macro, the assembler run into an internal error, because the
expansion of the second macro was started before the first one


git-svn-id: svn://svn.cc65.org/cc65/trunk@5034 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:45:37 +00:00
uz
6a48359d23 Fix a problem with conditional assembly: The scanner has to be switched into
raw token mode when skipping a section of input because otherwise pseudo
functions may trigger errors.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5033 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:28:56 +00:00
uz
6a56201046 Remove declarations for stuff that has never been there.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5032 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:24:51 +00:00
uz
9c53f8879c Fixed a problem in GetSymParentScope, where an error in the assembler input
somewhere before could lead to an invalid memory access.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5031 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-31 14:51:21 +00:00
uz
9c267dab89 The terminating zero was missing in several places where a string buffer was
copied to CurTok.SVal.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5030 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-30 21:56:27 +00:00
uz
f2517269ad Fix problem with output of sprintf when %s format spec is used.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5029 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-30 21:37:34 +00:00
uz
611563f899 Fixed typoes in cl65's --help message. By Greg King.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5024 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-09 16:33:38 +00:00
uz
23a5ea3ba5 Fixed typos in comments. No code changes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5014 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 21:40:00 +00:00
uz
80a5686bd9 The code for compares with a constant result may not be removed, because it
may contain side effects.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5010 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 18:48:06 +00:00
uz
c142061ca5 Removed unnecessary \n's in calls to Error().
git-svn-id: svn://svn.cc65.org/cc65/trunk@5008 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 18:00:51 +00:00
uz
845ad64633 Fixed an error in the last change: Arguments for option -W were not passed
correctly to the compiler.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5007 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 17:58:45 +00:00
uz
417b14432c Fix problem with changed syntax of option -W for the compiler: -W will now
only be passed to the compiler together with all warning names.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5006 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 17:56:44 +00:00
uz
928c76235f Fix output of --help regarding -W. Added new option --list-warnings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5005 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 17:42:49 +00:00
uz
671a4a653f Reverted the change by Stefan Haubenthal - order of segments is important for
the heap to work correctly.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4995 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-25 18:45:57 +00:00
uz
ccd1f5fcd7 Fix tape header output. Add version info in the header. By Stefan Haubenthal.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4984 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-16 12:09:28 +00:00
uz
d78e52fd40 New uploader that can be hiding in top of memory waiting for a BLL-kind of
loadable application over the ComLynx serial port. By Karri Kaksonen.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4982 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-06 19:54:55 +00:00
uz
00a11e642c Lynx boot stuff split up into several files. Changes by Karri Kaksonen.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4979 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-03-21 17:49:03 +00:00
uz
9528aae744 Improved and much smaller bootloader by Karri Kaksonen.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4978 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-03-17 22:36:09 +00:00
uz
93f8985e47 Fixed an error: The collection for the line infos hasn't been initialized.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4974 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-10 22:18:24 +00:00
uz
f5de5144d3 Initialize variables to avoid gcc warnings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4970 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-07 23:04:10 +00:00
uz
a6389e6406 The assembler options -l and --listing will now take the name of the listing
file as an argument.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4967 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-06 20:10:19 +00:00
uz
3b9032a7c4 Added disassembler support for the NMOS 6502 with illegal opcodes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4966 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-06 16:04:46 +00:00
uz
2056097a91 Fixed a bug reported by thefox.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4965 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-06 14:36:31 +00:00
uz
7c1cd6c8d8 Added two new global options, NewlineAfterJMP and NewlineAfterRTS.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4963 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-05 16:03:06 +00:00
uz
bcfa2c31cf Redid the whole line info stuff, because the old data structures weren't able
to manage the new information.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4961 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-03 17:08:20 +00:00
uz
405cb07e7a Fixed a bug.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4959 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-30 14:51:50 +00:00
uz
a6e099e9ac Bump version number of generated debug info files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4958 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 22:19:37 +00:00
uz
299a0ed4cd Pass type of line info through the object files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4957 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 22:16:03 +00:00
uz
0e32325ca6 New include file for line info definitions shared between assembler, linker
and od65 utility.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4956 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 22:08:58 +00:00
uz
88e6b86427 Changed text of notification.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4952 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 20:30:38 +00:00
uz
f0a0095c25 Create separate line infos for macros and .repeat statements and other token
lists. These are also output as diagnostic in case of an error.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4951 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 20:24:44 +00:00
uz
1072edb0d8 Use line infos to output more verbose error and warning messages whenever
possible.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4950 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 18:43:36 +00:00
uz
d5109f6319 Fixed an error in the macro versions of the inline functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4948 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 16:33:04 +00:00
uz
81c90667bf Small fix for debug info output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4947 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 16:20:39 +00:00
uz
8af53cf22a Adapted to new library format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4946 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 16:03:55 +00:00
uz
fa1b5f5f3c Fixed a bug: Wrong variable size trucates data.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4945 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 16:03:41 +00:00
uz
5855137d8c Change how data is stored in the library. To simplify things, the index
(=directory) entry is now shorter, and additional data necessary for checking
in the archiver is not stored in the directory but read from the object file
data in the library.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4944 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 15:42:32 +00:00
uz
8386b47074 No need to specify explicit paths in #include statements.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4943 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 12:21:48 +00:00
uz
8c0a0fa4a3 Use routine from common library instead of separate code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4942 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 12:14:22 +00:00
uz
5d7001dc93 Simplify things using collections. Some more generic overhaul.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4940 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 11:54:35 +00:00
uz
a214ccff92 Use a collection for the modules in a library.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4938 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 22:43:33 +00:00
uz
9023d0c6f2 On errors and warnings, output additional information using extra line info
supplied using the .dbg statements.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4937 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 22:25:32 +00:00
uz
036282aced Fix forgotten stuff from last change.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4936 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 22:23:01 +00:00
uz
81555b223d More lineinfo usage.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4935 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 21:40:37 +00:00
uz
73548dbfb3 Adapted to changes in the object file format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4931 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 17:35:48 +00:00
uz
88b3489d89 Adapt to changed object file format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4930 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:47:45 +00:00
uz
713c019a24 Save a few bytes when writing file list entries to the object file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4929 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:40:48 +00:00
uz
b2b1edc4ab Actually generate basic line info.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4928 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:39:30 +00:00
uz
d7d1ad7fd0 Must read line infos earlier when reading in an object files, because later
data references it.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4927 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:20:14 +00:00
uz
b903e818d1 More detailed error message.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4926 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:12:10 +00:00
uz
e654ad49eb Allow different output formats using additional linker configs. Contributed by
Karri Kaksonen.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4925 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-26 22:14:42 +00:00
uz
733e832b5d Use LineInfo instead of raw FilePos objects. Most information in the object
files does now have lists of LineInfos attached. Compiles but UNTESTED!


git-svn-id: svn://svn.cc65.org/cc65/trunk@4921 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-26 19:42:17 +00:00
uz
5b79d7e685 Convert imports, exports and debug symbols to use and write line infos instead
of embedded file positions.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4918 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-25 16:27:17 +00:00
uz
f3487b7c0f No need to search for the correct line info entry, the source position is
always in slot zero.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4917 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-25 16:26:50 +00:00
uz
6ddf79fc30 Fragments and assertions reference LineInfo items instead of having separate
embedded FilePos items.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4915 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-24 22:39:07 +00:00
uz
06e3152035 Started to generalize line info handling. Remove separate FilePos fields and
try to manage all and everything with LineInfos.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4914 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-24 22:38:22 +00:00
uz
0f9ced267e Bumped the object file version number.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4913 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-24 22:37:12 +00:00
uz
a7bd3ad0db Added a compar function for file positions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4912 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-24 16:15:35 +00:00
uz
3b59a8ca6f Mark tokens with the file position from where they're read. Restore this
position for tokens read from a token list. This means that line info does
now show the actual point of definition. This is an improvement but needs to
be refined.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4911 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-20 20:54:30 +00:00
uz
ddb7296b6c Move all attributes and other information that is attached to a token into a
structure named Token.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4910 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 16:05:43 +00:00
uz
dbfae85f54 Renamed the Token enumeration to token_t.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4909 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 14:51:13 +00:00
uz
1d36b7f1b3 Add missing braces in macro definition. No error but could cause one.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4908 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 14:19:58 +00:00
uz
e2485f100e Removed two defines that are no longer in use.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4907 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 14:18:03 +00:00
uz
839e2c4202 Added new .FATAL pseudo op.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4903 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-09 11:00:22 +00:00
uz
d60c627cb6 When replaying a token list, be sure to zero terminate the string attribute of
a token.
        


git-svn-id: svn://svn.cc65.org/cc65/trunk@4900 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-05 10:47:32 +00:00
uz
a2ec97ac13 More changes by Karri Kaksonen.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4899 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-04 19:39:07 +00:00
uz
78c2b66e58 When collecting tokens to be repeated inside of a .REPEAT section, do this in
raw token mode, otherwise stuff is already partially evaluated.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4897 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-04 19:17:20 +00:00
uz
338844cb2e Patch by Gary Wong: The smbx and rmbx instructions are two byte insns (not one
byte).


git-svn-id: svn://svn.cc65.org/cc65/trunk@4895 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-12-30 19:35:10 +00:00
uz
212941ddb4 Fix consecutive false errors when a label without a following statement is
encountered.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4894 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-12-30 19:30:54 +00:00
uz
d993b332a4 Lynx update including file routines that access a file system on a cartridge
by Karri Kaksonen.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4892 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-12-29 10:37:57 +00:00
uz
4a92522c82 In the generated assembly file, add import statements for all zero page
variables known by the runtime. They aren't currently accessed by the compiler
itself but may be useful for inline assembly.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4891 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-12-29 10:18:29 +00:00
uz
f11067e260 Latest versions of startup code and config by Karri Kaksonen. Citing: The new
header contains an encrypted loader, a small directory structure and a single
pixel black title screen. This is directly bootable on a real Lynx.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4890 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-12-22 15:37:20 +00:00
uz
3f5b2a8fbd Allow to disable the "Result of comparison is constant" warning.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4883 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-28 21:16:46 +00:00
uz
94f1a17a47 Renamed grc -> grc65.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4881 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-25 17:29:59 +00:00
uz
bb1d6d94a3 Renamed grc to grc65 to avoid name conflicts with another software named grc.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4875 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-18 18:47:01 +00:00
uz
81cfbe06c6 Changed the startup module and the linker config for the Commodore VIC to use
the common loadaddr and exehdr modules.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4874 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-17 13:35:43 +00:00
uz
9a9cea5a61 Changed the startup module and the linker config for the Commodore PET to use
the common loadaddr and exehdr modules.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4873 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-17 13:27:43 +00:00
uz
7252f071a2 Changed the startup module and the linker config for the C128 to use the
common loadaddr and exehdr modules.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4872 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-17 13:00:34 +00:00
uz
da59130820 Changed the startup module and the linker config for the C16 to use the common
loadaddr and exehdr modules.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4871 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-17 12:46:55 +00:00
uz
8aff2a9159 Fixed a problem with the last change in crt0.s: The symbols for the RAM memory
area had been used but not defined in the linker config. Changed the startup
module and the linker config to use the common loadaddr and exehdr modules.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4870 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-16 17:33:25 +00:00
uz
461bf5e81e Fixed wrong size of HEADER area. The invalid size had no bad effects, but it
was wrong anyway.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4869 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-16 17:30:42 +00:00
uz
0e0bb60d21 Removed some left over debug output
git-svn-id: svn://svn.cc65.org/cc65/trunk@4868 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-16 10:14:56 +00:00
uz
dfd4c0ab63 Limit RAM area to $CFFF instead of $FFFF.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4865 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-14 17:00:21 +00:00
uz
b6d872e5b7 Added the first implementation of a linker config suited for c64 assembly
programs.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4864 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-14 13:11:09 +00:00
uz
413491d1b2 Modified the builtin c64 config to force inclusion of the new exehdr module.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4863 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-14 11:51:43 +00:00
uz
268e093469 Fix order of command line arguments: -o should precede -C or -t.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4859 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-13 22:52:13 +00:00
uz
09a62690f3 Fixed typo in warning message.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4858 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-13 22:48:39 +00:00
uz
36dc806193 Force inclusion of the load address.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4857 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-13 16:57:42 +00:00
uz
4786caf496 For modules, the ZP memory area must be written to the output file. This is
required by the logic in the linker.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4854 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-13 10:20:28 +00:00
uz
c797be4767 Add an additional file = "" to memory areas that contain only bss or zp type
segments and aren't written to the output file. Before that, the "not going to
output file" was implicit because of the bss type of the segments contained.
The new attribute makes this explicit.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4853 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-12 19:59:02 +00:00
uz
de14990fbb Define the __XX_START__ symbol for a memory area earlier, so it may be used in
the expression for the size of the same area.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4852 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-12 18:01:31 +00:00
uz
5e8252fa36 Reworked and improved the SYMBOLS section. The old syntax (using symbol =
value) is now gone, attributes are used instead. The SYMBOLS section does now
support imports, so the linker config can be used to force symbols (and
therefore module) imports. Evaluation of start address and size for memory
areas has been delayed even further, so it is now possible to use the values
from one memory area in the definition of the next one.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4851 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-12 14:17:35 +00:00
uz
a0a0347ecc Make the Name and Col fields unsigned instead of short.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4850 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-12 14:14:27 +00:00
uz
7c1094c086 Keep the config file position in a FilePos structure.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4847 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-10 19:52:40 +00:00
uz
c695829813 Added a static initializer for struct FilePos.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4846 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-10 19:16:29 +00:00
uz
3f24c88355 SegNum has been renamed to SecNum.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4845 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-10 10:22:55 +00:00
uz
7bd19b737a One more place where OutputNameUsed must be flagged.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4844 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-09 22:07:45 +00:00
uz
a2b7ef2b08 Merge CfgProcess and CfgAssignSegments because both do some sort of
postprocessing. Print a warning if %O was used in the config file and the
output file name is changed later using -o.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4842 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-09 21:01:27 +00:00
uz
c9b9069208 Better handling of imports in the ExprNode structure.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4841 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-09 20:34:08 +00:00
uz
da792b3fd0 Separate processing the linker config file into two phases: The config file is
read when the -t or -C switch is encountered and parts of it are processed.
The remaining parts are processed when all object files and libraries have
been read. To make this work, the expression evaluation in cfgexpr has been
rewritten to generate true expression trees. This means that expressions in
the linker config may use exports from the object files. 

Separation of config file processing is the base for several enhancements, for
example forced imports by linker config.

This code needs more work and is only very, very, very roughly tested.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4840 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-08 21:52:24 +00:00
uz
6c0a9c0438 Patch to correct the linkorder in the make files to make the --as-needed
ldflag work. By Mario Fetka.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4838 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-07 11:34:51 +00:00
uz
f1ce44edfe Fixed register info for several runtime functions. Info for the Y register was
wrong, so the optimizer assumed it wouldn't change across a call.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4836 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-02 18:05:19 +00:00
uz
d08ff2b6df Fix parsing of push/pop so that #pragma warn works without.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4824 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-10-02 19:43:18 +00:00
uz
e048d2aeba Make the warning "statement has no effect" switchable.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4823 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-10-02 19:32:11 +00:00
ol.sc
aaf90c1252 Exclude (small) stack from RAM memory area (like on most other targets) to make explicit that the linker may not use all RAM. If the cc65 parameter stack isn't used at all the __STACKSIZE__ symbol may be overridden on the linker command line with -D __STACKSIZE__=0.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4820 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-10-02 10:20:00 +00:00
uz
172d33e584 Fixed problem with last change: Static declaration do also set the SC_EXTERN
flag (have to check why).


git-svn-id: svn://svn.cc65.org/cc65/trunk@4818 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-24 07:28:08 +00:00
uz
5aff0764a1 Allow initialization of variables declared with "extern".
git-svn-id: svn://svn.cc65.org/cc65/trunk@4816 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-23 18:18:53 +00:00
uz
674289e471 use ReadVar to read the type. This doesn't make a difference for now but will
come handy later. Add output for all of the symbol flags from symdefs.h.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4814 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 21:04:28 +00:00
uz
017bdf970a Include information about the type of the symbol in the flags written to the
object file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4813 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:54:02 +00:00
uz
112ae0e3db Renamed the defines in symdefs.h to something more meaningful. They were named
EXP_xxx for historic reasons, but SYM_ does make much more sense now.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4812 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:47:27 +00:00
uz
d62af9de80 Debug symbolid for each symbol that goes into the debug symbol output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4811 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:11:27 +00:00
uz
b2b2a05a46 SF_INDEXED is no longer needed.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4810 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:02:30 +00:00
uz
c921c409e8 Rename symbol index => import id because that's what it really is.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4809 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:01:54 +00:00
uz
e55b19fa8b Maintain some additional information for scopes. Write a dummy scope section
into the object file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4808 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 16:58:41 +00:00
uz
41c119deca Bumped the year in the copyright notice. It hasn't changed for five years:-)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4807 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-11 19:43:48 +00:00
uz
1a4a02821e New function cc65_symbol_inrange. Fixed an error in cc65_symbol_byname.
Restructured the dbgtest.c source.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4806 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-11 19:31:30 +00:00
uz
d627b1ac83 First support for symbols - mostly untested.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4805 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 22:05:44 +00:00
uz
03d3868d45 Start adding (limited) support for symbols.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4804 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 21:29:15 +00:00
uz
7e72e7d46b Change output for symbols in the debug info file to match that of the other
lines. The name is now preceeded by "name=".


git-svn-id: svn://svn.cc65.org/cc65/trunk@4803 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 21:28:47 +00:00
uz
8f03c4e9cf Move the collection containing all line infos into the DbgInfo struct and keep
it there. It will be used to search for line info by address in some future
version, which is faster than searching through all the source files in a
linear fashion.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4802 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 20:54:12 +00:00
uz
5625977188 Add 'extern "C"' so the module may be used from C++ sources.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4801 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 15:55:49 +00:00
uz
3f7fc55c7e Added some more checks and initialization.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4800 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 15:52:23 +00:00
uz
b936617eb4 Fixed a C99ism.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4799 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 05:47:22 +00:00
uz
99fd891126 Major changes: Names of structures, fields and subroutine names have changed.
Support for additional segment info and file offsets for an address. The
version number is now mandatory and checked to avoid problems with old
formats.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4798 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 20:38:15 +00:00
uz
14e567aed2 Another format change: Record the output file and offset for each segment
written to the output. Make this information available in the debug info file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4797 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 20:32:13 +00:00
uz
6272c93556 Allow access to segment information.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4796 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:43:13 +00:00
uz
34c938e7ac More collection usage. This has also removed the need for the MemListNode
structure.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4795 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:35:56 +00:00
uz
fedb265a22 More collection usage.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4794 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:23:22 +00:00
uz
ad140bede4 Replace more linked lists by collections.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4793 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:13:53 +00:00
uz
026724482f Use collections instead of linked lists to simplify things.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4792 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:03:58 +00:00
uz
3eed1bffbc Some more test and example code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4790 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-07 13:40:16 +00:00
uz
d645a797cb Improved info API.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4789 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-07 13:25:09 +00:00
uz
8c39874daa Some changes in debug info generation.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4788 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-07 12:46:12 +00:00
uz
1dbb84bcee Add some code that tries to skip unknown keywords that may have been added by
later version of the debug info.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4787 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-06 09:17:43 +00:00
uz
3d2cb567dc The stuff will not link with Watcom because of vsnprintf, but a makefile is
still useful for testing.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4786 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 21:16:07 +00:00
uz
1877af89cc Several fixes detected when using another C compiler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4785 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 21:15:00 +00:00
uz
4b1c5e4157 First working version with complete API for line information.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4784 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 21:00:36 +00:00
uz
12e7cc010d Output version information into the debug file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4783 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 20:41:27 +00:00
uz
0807da74bd Corrected indentation - no code change.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4782 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 19:34:25 +00:00
uz
b8e7feb788 Fix relocation of line infos.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4781 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 19:34:03 +00:00
uz
abda26a309 Don't output multiple code ranges per line, since this is harder to parse.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4780 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-03 19:00:14 +00:00
uz
54e22eb53c First version of a module that reads debug files generated by ld65.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4779 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-03 18:46:50 +00:00
uz
e046ecbcf2 Be sure to generate line info for all segments.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4778 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-01 13:52:06 +00:00
uz
83e5252785 Changed a comment
git-svn-id: svn://svn.cc65.org/cc65/trunk@4777 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-01 13:48:32 +00:00
uz
031ae666e3 Fixed an error in the macro version of HasObjData().
git-svn-id: svn://svn.cc65.org/cc65/trunk@4776 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-31 12:37:14 +00:00
uz
b2321ebdf7 Fixed an error: Some of the collections weren't initialized.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4775 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-31 09:44:25 +00:00
uz
23b867b7a4 Handle file position information for fragments differently: Instead of
handling them separately (which has historic reasons), generate real line info
information. This means that line info for the assembler source will be part
of the debug info file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4774 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-30 22:44:09 +00:00
uz
f308a3c4d1 Use collections in the object file structure instead of managing the items
manually.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4773 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-30 20:58:51 +00:00
uz
5bffbc98ff Added a new function CollGrow.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4772 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-30 20:58:09 +00:00
uz
7d506c84c9 Make .DEF, .REF and friends also work with cheap local symbols.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4767 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-26 17:28:34 +00:00
uz
477b77f528 Another minor improvement in compares.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4745 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-11 21:53:48 +00:00
uz
2bb2d97ab0 Fixed and improved the code for compares. Before, compares of chars to a
constant where sometimes passed down to the code generator in a way that
caused wrong code to be generated.

This change may go into 2.13 after some testing.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4743 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-11 16:11:45 +00:00
uz
a89231ece7 Fixed an error: A function wasn't converted to a void pointer automatically by
the compiler.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4741 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-10 20:48:05 +00:00
uz
abbfaef2aa A negative token count for .LEFT was incorrectly adjusted to 1, not to 0.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4738 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-10 12:32:05 +00:00
uz
125ab37c09 Added relative include path handling: The path of an input file is now pushed
onto the search path list, so include files will be searched relative to this
path first.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4676 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-30 13:31:09 +00:00
uz
b942fd0b56 Check for a size of zero in SB_CopyBuf to make the code somewhat faster.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4675 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-29 21:23:34 +00:00
uz
314893619a Don't ignore empty paths when adding the path of a file to the search path
list.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4674 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-29 21:20:48 +00:00
uz
02f5b5499e Changed search path logic: Include files are now search first in the directory
containing the file that had the #include statement. The path of the main file
will also added to the front of the search path list, so includes will not be
search in the current directory first, but in the directory that contains the
main file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4673 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-28 12:00:12 +00:00
uz
9a6f97cfe1 PushSearchPath will add the path only if it's not already there.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4672 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-28 11:56:01 +00:00
uz
ebd679dd57 New functions PushSearchPath and PopSearchPath.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4671 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-28 11:22:44 +00:00
uz
64b597017a Fix the check for constant static local data, which was wrong when the data
was an array. It should go into RODATA, not DATA.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4669 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-27 19:47:13 +00:00
uz
05f7296369 Restructured search path handling.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4662 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-09 10:54:15 +00:00
uz
d95bb2e600 New option --bin-include-dir which is passed to the assembler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4661 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-04 20:19:54 +00:00
uz
d54ca88743 Added a new option --dep-target to the compiler. This option allows to set the
target in the generated dependency file. The cl65 utility will use this option
to override the depdendency target, if actual object files are to be generated
from C input. So the generated dependency will not have the intermediate .s
file as target, but the final .o file, which allows to use the dependency
files without further processing.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4660 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-02 09:56:40 +00:00
uz
e61bf7094c Restructured the code for better reada- and maintainability.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4659 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-02 09:32:42 +00:00
uz
0695f39611 Added --create-dep and --create-full-dep to the cl65 utility.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4655 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-01 14:47:09 +00:00
uz
39108e20b5 Rewrote the search path routines to use collections internally.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4654 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-01 14:44:14 +00:00
uz
3fd52eb57f Added dependency file generation to the assembler. This includes two new
options, --create-dep and --create-full-dep. The latter will include files
that are passed via debug info to the assembler.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4653 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-01 11:59:55 +00:00
uz
96cf7f6271 Changed generation of makefile dependencies:
* There are now two options, --create-dep and --create-full-dep. One
    will add system includes, the other not.
  * Both options require a file name. This is an incompatible change(!)
    but has the advantage that the user is in control of extension and
    path of the generated file.
  * Output will always include a phony target for the input files. This
    may not work with all make programs.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4652 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-01 09:42:12 +00:00
uz
54740da820 More preparations for an extension of the calling conventions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4650 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-29 20:30:49 +00:00
uz
77bfcc1ff0 Change the OptStackOps function so that it adjusts the instruction pointer
after changing code. Without this correction, the insn pointer may be wrong
after one of the subfunctions has changed code, which may cause a valid
sequence not to be detected. This change (when proven good) may also go into
2.13.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4649 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-25 21:51:59 +00:00
uz
2e6d218801 Remember the type of the input file. This may be used later to create more
variants of dependency files.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4645 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-22 19:40:50 +00:00
uz
bfd8f4e108 Implemented new .PUSHCPU and .POPCPU commands.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4644 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-18 18:47:16 +00:00
uz
922cbf08eb Added several functions to the intstack module.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4643 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-18 18:40:59 +00:00
uz
48c647b6bd Added while loop inversion.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4642 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-17 15:19:35 +00:00
uz
6b3e515573 Reverted part of change 4108 that prevented an optimization step to find
proper replacements. Some other rearrangements for slightly better code.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4640 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-10 11:23:39 +00:00
uz
4299e2db05 Added the cdecl keyword
git-svn-id: svn://svn.cc65.org/cc65/trunk@4639 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-09 19:47:33 +00:00
uz
ca9170cd20 More strcmp inlining.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4638 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-23 21:47:12 +00:00
uz
8e26fef105 Fixed the size of the RAM segment for the CBM610. The routine that does
cross-bank calls is located at $FECB and the stack grows downwards from 
there.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4637 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-23 19:40:48 +00:00
uz
e192edd021 Inline some occurances of strcmp.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4635 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-22 22:28:45 +00:00
uz
3d06780f6d For the CBM 510, the stack is not part of RAM. And, because of the cross-bacnk
routine, it is smaller than the number used before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4634 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-21 21:39:44 +00:00
ol.sc
4b689107a4 - No more HEAP segment
- RAM reduced by __STACKSIZE__
- Unified formatting

git-svn-id: svn://svn.cc65.org/cc65/trunk@4633 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-21 17:10:17 +00:00
uz
0e60a60c3e Fixed an optimizer problem.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4632 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-21 14:08:46 +00:00
uz
1a4e2edede Reenable compile time evaluation of strlen for string literals.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4631 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 18:51:59 +00:00
uz
15f95d7623 Changed the size of available RAM so that the last used address is $7FFF.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4630 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 18:08:27 +00:00
uz
7450c25404 Allow escape sequences prefixed by '%' in strings. '%%' denotes a single
percent sign, %O is the name of the output file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4628 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 17:48:15 +00:00
uz
b759e753e4 Changed the type of CfgSVal to a string buffer and removed the upper limit for
the length.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4627 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 17:23:51 +00:00
uz
af27ae6d79 Fixed two issues with macros:
* A newline between the macro name and the argument list of a function like
  macro was not accepted.
* An unterminated macro argument list was not always detected.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4621 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-14 17:46:02 +00:00
uz
61b69316c5 Added builtin .min() and .max() pseudo functions to the assembler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4583 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-02-11 18:54:08 +00:00
uz
5477e62e3a Fixed open mode for second try in DoIncBin (Greg King).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4563 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-31 20:49:40 +00:00
uz
79820fe4ec Added a separate include search path for binary includes. These aren't
searched any longer in the standard include path.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4558 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-25 20:33:01 +00:00
uz
5175f95341 Fixed a problem in the optimizer function that rewrites ops that use the
stack. Useless instructions (duplicate loads or transfers) within the sequence
are left intact and may cause problems because the interfere with the
replacement code. A run of OptRemoveUnusedLoads and friends should fix the
problem, bit this step may be disabled, so the routine has to check for this
condition and avoid it (by not doing the replacement).


git-svn-id: svn://svn.cc65.org/cc65/trunk@4551 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-20 19:47:44 +00:00
ol.sc
3d5d3ef76a Define HEADER memory area for the EXEHDR segment for consistency reasons with the other targets with an EXEHDR segment (apple2[enh], atari, lynx, cbm[5|6]10).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4550 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-17 21:47:03 +00:00
uz
41f7757204 Ignore unknown preprocessor directives in an #if group that is excluded.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4534 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-30 11:20:09 +00:00
uz
60bc009991 * Moved the BASIC stub that calls the compiled program into it's own segment
named EXEHDR.
* Renamed BASICHDR to EXEHDR for the PET-II machines.
* Moved the call to CHRCH in front of the code that saves the zero page, since
  open files are sometimes remembered in the zero page, so we need to close
  them before we grab a copy.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4507 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-09 12:42:24 +00:00
uz
1fae13274e An assignment for the ZPSAVE segment was missing in the linker config for the
32K memory config of the VIC20. Hint from Robert Hurst.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4505 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-08 20:41:43 +00:00
uz
7d94dc50a1 New option and #pragma --local-strings that causes string literals to be
output immediately.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4504 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-08 20:35:24 +00:00