Commit Graph

1017 Commits

Author SHA1 Message Date
Greg King
372e6ac1d6 Removed useless command-line option. 2013-05-07 00:54:44 -04:00
Oliver Schmidt
55667b94fb Added search path relative to running binary on Windows.
In contrast to *IX it doesn't make much sense to add compile time defined
search paths to Windows binaries: There's no standard path like /usr/local/bin
(and there are no symbolic links to link from there to another location).

On the other hand it's (again in contrast to *IX) easy for Windows binaries
to determine their own paths. Therefore it's appropriate to make use of that
to add run time defined default search paths.
2013-05-06 23:20:56 +02:00
Greg King
be5a5e03d8 Changed the order of directories that are searched for include files. 2013-05-03 23:25:06 -04:00
Oliver Schmidt
f8ffe4c605 Removed unused variable. 2013-05-02 14:55:17 +03:00
Oliver Schmidt
75d32760ac Removed unused variables. 2013-05-02 14:51:08 +03:00
Oliver Schmidt
052b229f86 Replaced whole bunch for Makefiles with a single generic Makefile.
- Targeting GNU toolchain.
- Modern dependency handling.
- Warning-free build.
- GCC option -Werror set.
- Dynamic search paths.
- Don't write into source directories.
- Easy cleanup by just removing 'wrk'.
2013-04-27 17:20:36 +02:00
Oliver Schmidt
ede72d78b2 Allow to supply searchpath defines as simple values instead of escaped C strings. 2013-04-27 17:20:34 +02:00
Oliver Schmidt
be83b87463 Allow for warning-free build of cc65 with MS VC on warning level 3. 2013-04-08 00:11:13 +02:00
Oliver Schmidt
ef803fed05 No SVN version here. 2013-04-08 00:11:12 +02:00
uz
e6aa00b339 Reorder CF_xxx flags so that they can be used as table index.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5990 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-03-06 12:53:07 +00:00
uz
e8964cde74 Quick fix for a problem in the OptLoad3 function. The fix isn't perfect and
may fail for inline assembly code, but at least it's less buggy than before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5982 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-12 19:51:11 +00:00
uz
fd679d92d0 Fixed a problem: When a struct or unit was declared with a tag name, it was
possible to use the opposite type with the tag name. That is "struct a" after
declaring "union a" and vice versa.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5980 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-02 22:31:26 +00:00
uz
0eed753578 Prevent a literal string that is an argument for sizeof to be output into the
literal pool.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5968 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-25 20:45:40 +00:00
uz
63a0813979 Fix an error in ReleaseLiteral.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5967 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-25 20:39:43 +00:00
uz
d6290e0a0f Do an additional run of duplicate loads at the end of OptGroup4.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5959 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-07 20:17:50 +00:00
uz
03e6556457 Fixed a bug in the function that generates register info: For tosaslax the
check for a known output value of A was wrong.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5954 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-01 21:09:16 +00:00
uz
ff166363f0 OptCmp3 removed a compare to zero instruction preceeded by a load despite the
fact that the carry flag (which is set by the compare but not by the load) had
been used later.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5885 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-28 19:04:09 +00:00
uz
5fe9e2c3b3 Don't add the current directory to the list of search paths. If the main file
is located there, it is added anyway. If the main file is located elsewhere,
we don't want to search in the current directory.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5803 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-01 21:44:36 +00:00
uz
3c9f722fbf Fixed a problem with a memcpy optimization (source and target have been
swapped).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5796 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-28 12:26:57 +00:00
uz
eef430e45a Fixed a problem with the optimizations for shifts.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5783 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-12 21:12:50 +00:00
uz
49e5d19950 Added an option to output the assembly after each transformation step of the
optimizer.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5781 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-12 20:30:01 +00:00
uz
44f965c462 Enable optimization for arithmetic right shift. NOTE: There's a bug lingering
in the shift code optimization which needs fixing.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5780 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-11 20:58:29 +00:00
uz
40a3084553 Add another form of duplicate load removal.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5778 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-10 20:46:21 +00:00
uz
58530c142a Rearrange order of opt steps for better efficiency.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5774 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-08 21:56:01 +00:00
uz
59ae850db7 Replacement in OptShift3 is even possible, when X is used later.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5773 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-08 13:05:57 +00:00
uz
440cc47770 Fixed an error.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5772 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 22:22:59 +00:00
uz
3365220827 Added optimization for complax.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5771 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 19:54:24 +00:00
uz
49905d74bd More shift optimizations.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5770 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 19:24:17 +00:00
uz
ae42e3b491 Added a comment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5769 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 19:09:23 +00:00
uz
a27bc7774e Start adding stuff that optimizes the new shift functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5768 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 17:56:39 +00:00
uz
859236615e Ignore a few more "harmless" functions when optimizing.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5767 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 17:36:15 +00:00
uz
4139c83abf Move the optimization routines for shifts into a separate module.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5766 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 15:21:12 +00:00
uz
cd4f87b2cc Fixed compiler warnings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5765 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 20:02:43 +00:00
uz
e50649af2c Transform tosshlax and friends into a sequence that doesn't use the stack if
possible.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5764 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 20:01:46 +00:00
uz
5f0db62f58 Added info for new shift routines that don't use the stack.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5763 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 20:00:22 +00:00
uz
da766d872c Small code changes for more safety (and to be compatible with the new shift
routines that don't use the stack).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5762 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 19:59:29 +00:00
uz
92a0632634 Added register info for the aslaxy and shlaxy routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5743 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 22:05:56 +00:00
uz
43d0d2fb78 Special handling for a few more runtime functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5737 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 14:29:27 +00:00
uz
87d19de33f OptSize2 needs an extra removal of duplicate transfers.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5734 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 19:34:48 +00:00
uz
ec900bc200 Centralize generation of register infos for a code segment. This means that
all optimizer functions can rely on it.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5733 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 17:33:31 +00:00
uz
d5810a818c Added two replacements for negax. Shift right for signed values can be treated
like unsigned if X is known to be zero.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5732 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 16:58:05 +00:00
uz
4333c76710 The OptNegXXX function were actually handling bnega... runtime stuff. Renamed
them accordingly.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5731 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 16:17:56 +00:00
uz
ec1f955a6e For commutative operators processed by hie_internal, if the left side is a
constant, exchange the order of the operands so that better code can be
generated.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5721 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 18:12:24 +00:00
uz
b5d88fdedd Mark commutative operators as such (no change in code until now).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5720 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 15:49:53 +00:00
uz
c1d7ed26e8 Unified the "store via pointer" optimization routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5719 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 15:46:45 +00:00
uz
7c9b27c048 Be more flexible when detecting a special sequence that can be optimized.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5718 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-15 20:51:14 +00:00
uz
9142a300c1 Another optimization for array stores.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5715 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-12 18:11:53 +00:00
uz
c66185259b Extend OPtShift3 to shift counts larger than 1.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5713 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 17:58:32 +00:00
uz
22078ba924 The new module was missing from the Watcom makefile.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5712 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 07:45:47 +00:00
uz
cb9ef2f96a Added a forgotten header file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5711 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 07:06:24 +00:00