1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 07:29:33 +00:00
cc65/src/cc65
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
..
make Replace tabs by spaces in file lists. 2009-09-29 13:32:09 +00:00
.lclintrc Added .lclintrc 2001-09-06 09:43:53 +00:00
anonname.c Use xsprintf instead of sprintf. 2009-09-06 19:07:18 +00:00
anonname.h Fixed an error in struct compare. For one, the behaviour was not standard 2002-11-15 13:19:46 +00:00
asmcode.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
asmcode.h Improved the code generated for bit-fields. 2009-08-31 14:59:49 +00:00
asmlabel.c Fixed an off-by-one error (reported by Greg King - thanks). 2009-08-05 14:29:30 +00:00
asmlabel.h New function IsLocalLabelName. 2009-08-04 19:12:34 +00:00
asmstmt.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
asmstmt.h Move inline asm parsing into a separate module 2001-09-09 09:33:06 +00:00
assignment.c Use the new function MarkedExprWithCheck. 2009-09-08 19:49:30 +00:00
assignment.h Changed the expression parser to return the lvalue flag as part of the 2004-05-25 20:59:38 +00:00
casenode.c Don't run into an internal error in case of a duplicate switch label. 2001-10-11 13:45:46 +00:00
casenode.h Remove an unused function 2001-10-11 22:02:00 +00:00
codeent.c Fixed warnings generated by clang (run by Per Olofsson). 2009-09-28 15:59:18 +00:00
codeent.h Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
codegen.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
codegen.h Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
codeinfo.c Added info about changed leaa0sp and leaaxsp. Rewrote g_leasp to cope with 16 2009-08-31 12:41:38 +00:00
codeinfo.h New store optimization. 2002-10-17 21:37:01 +00:00
codelab.c Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
codelab.h Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
codeopt.c Added another optimization step. 2009-10-26 10:17:53 +00:00
codeopt.h Allow enabling/disabline optimizer steps by file 2001-07-29 20:38:15 +00:00
codeseg.c Fixed warnings generated by clang (run by Per Olofsson). 2009-09-28 15:59:18 +00:00
codeseg.h Improved the code generated for bit-fields. 2009-08-31 14:59:49 +00:00
compile.c New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
compile.h Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
coptadd.c clc should always be the insn before adc. 2009-08-15 16:00:30 +00:00
coptadd.h More optimizations 2005-09-12 22:38:19 +00:00
coptc02.c Some function renaming. 2005-09-11 12:52:12 +00:00
coptc02.h First support for STZ 2002-03-11 06:29:54 +00:00
coptcmp.c Removed an unused table. 2009-10-24 19:37:57 +00:00
coptcmp.h Another tiny code improvement for integer compares. 2009-08-29 11:31:28 +00:00
coptind.c Fixed a problem introduced with the last change. 2009-10-31 14:01:22 +00:00
coptind.h New optimization step 2009-09-29 18:46:25 +00:00
coptneg.c Some function renaming. 2005-09-11 12:52:12 +00:00
coptneg.h More source splitting. 2001-09-30 21:56:45 +00:00
coptptrload.c Fixed an error in OptPtrLoad16. 2009-09-08 21:10:19 +00:00
coptptrload.h Some more pattern replacements. 2009-08-16 20:56:33 +00:00
coptpush.c A few size optimizations 2002-11-23 16:33:35 +00:00
coptpush.h A few size optimizations 2002-11-23 16:33:35 +00:00
coptsize.c Added info about changed leaa0sp and leaaxsp. Rewrote g_leasp to cope with 16 2009-08-31 12:41:38 +00:00
coptsize.h Added more size optimizations, separate module 2002-10-08 20:56:00 +00:00
coptstop.c Fixed a problem in the optimizer function that rewrites ops that use the 2010-01-20 19:47:44 +00:00
coptstop.h More optimizations 2001-09-25 20:37:58 +00:00
coptstore.c ldaxysp doesn't return flags any more. 2006-04-15 20:45:35 +00:00
coptstore.h Added some code rewriting (may enable optimizations in a few cases). 2006-04-15 20:31:43 +00:00
coptsub.c Optimize decaxn 2006-04-15 19:28:45 +00:00
coptsub.h Optimize decaxn 2006-04-15 19:28:45 +00:00
copttest.c Added another optimization step. 2009-10-26 10:17:53 +00:00
copttest.h Added another optimization step. 2009-10-26 10:17:53 +00:00
copyleft.jrd This commit was generated by cvs2svn to compensate for changes in r2, 2000-05-28 13:40:48 +00:00
dataseg.c Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
dataseg.h Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
datatype.c Fixed an error: If an expression is loaded into the primary, a function must 2009-07-28 18:56:16 +00:00
datatype.h Make the SIZEOF_XXX constants resolve to unsigned values. 2009-08-30 08:36:56 +00:00
declare.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
declare.h Fixed the existing but unused attribute parsing code. Added 2009-10-18 18:31:02 +00:00
declattr.c Changed handling of attributes to a more generic form (it's allowed in each 2009-10-18 21:42:59 +00:00
declattr.h Changed handling of attributes to a more generic form (it's allowed in each 2009-10-18 21:42:59 +00:00
error.c Warn when structs are passed by value to a function. 2009-10-15 19:18:34 +00:00
error.h Warn when structs are passed by value to a function. 2009-10-15 19:18:34 +00:00
expr.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
expr.h Allow to store start and end of generated code in the ExprDesc structure. New 2009-09-08 19:48:22 +00:00
exprdesc.c Fix a problem with error handling: The E_HAVE_MARKS flag must not be removed 2009-11-24 22:56:56 +00:00
exprdesc.h Allow to store start and end of generated code in the ExprDesc structure. New 2009-09-08 19:48:22 +00:00
funcdesc.c Fixed a bug that caused problems locating the last parameter of a function 2003-08-10 17:05:18 +00:00
funcdesc.h Moved the fascall and near/far flags from the function desriptor into the 2008-08-24 17:33:30 +00:00
function.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
function.h Remember more function infos in the Function struct. 2009-08-31 20:37:54 +00:00
global.c New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
global.h New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
goto.c More polishing to get the line info right 2001-05-22 16:54:47 +00:00
goto.h More polishing to get the line info right 2001-05-22 16:54:47 +00:00
hexval.c Redoing the pragma stuff 2002-09-29 21:09:47 +00:00
hexval.h Redoing the pragma stuff 2002-09-29 21:09:47 +00:00
ident.c Use chartype.h instead of ctype.h 2001-01-05 19:24:47 +00:00
ident.h This commit was generated by cvs2svn to compensate for changes in r2, 2000-05-28 13:40:48 +00:00
incpath.c Changed search paths to use subdirectories of CC65_HOME, remove CC65_LIB. 2009-09-22 11:49:53 +00:00
incpath.h Changed search paths to use subdirectories of CC65_HOME, remove CC65_LIB. 2009-09-22 11:49:53 +00:00
input.c Removed an unused function. 2009-10-11 15:10:55 +00:00
input.h Introduce a -E flag that activates just the preprocessor. 2004-09-16 12:42:41 +00:00
lineinfo.c Fixed a bug: Compiling an empty source file led to an internal error. 2005-06-08 11:31:00 +00:00
lineinfo.h Fixed a bug: Compiling an empty source file led to an internal error. 2005-06-08 11:31:00 +00:00
litpool.c New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
litpool.h New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
loadexpr.c Fixed a problem with bit-fields: Values spanning more than a byte must always 2009-10-20 08:21:12 +00:00
loadexpr.h Renamed ExprLoad to LoadExpr. 2004-06-09 19:25:28 +00:00
locals.c Fixed a bug in the last change. For variables that have no initializer, no 2009-10-26 10:17:17 +00:00
locals.h Working on the new backend 2001-05-03 17:34:54 +00:00
loop.c The loop code will access the stackpointer directly 2004-06-06 10:52:32 +00:00
loop.h The loop code will access the stackpointer directly 2004-06-06 10:52:32 +00:00
macrotab.c Make much more usage of dynamic strings (StrBufs) instead of char* and 2008-03-31 20:54:45 +00:00
macrotab.h Added C99 variadic macros 2005-07-24 22:14:41 +00:00
main.c New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
opcodes.c Fixed inline assembler problems with instructions where implicit means 2004-07-18 09:34:52 +00:00
opcodes.h Fixed inline assembler problems with instructions where implicit means 2004-07-18 09:34:52 +00:00
output.c Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
output.h Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
pragma.c New option and #pragma --local-strings that causes string literals to be 2009-12-08 20:35:24 +00:00
pragma.h Redoing the pragma stuff 2002-09-29 21:09:47 +00:00
preproc.c Ignore unknown preprocessor directives in an #if group that is excluded. 2009-12-30 11:20:09 +00:00
preproc.h Added license information preproc.h 2004-06-29 20:26:27 +00:00
reginfo.c Fixed a bug. 2003-10-06 10:29:17 +00:00
reginfo.h Fixed a bug. 2003-10-06 10:29:17 +00:00
scanner.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
scanner.h Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
scanstrbuf.c Fixed a problem with SB_GetSym. 2009-10-14 13:03:47 +00:00
scanstrbuf.h Rewrote most of the #pragma parsing code. I'm still not satisfied, but at 2009-10-13 21:24:32 +00:00
segments.c Move global segment creation to a better place in source. 2009-12-04 13:04:40 +00:00
segments.h Move global segment creation to a better place in source. 2009-12-04 13:04:40 +00:00
shiftexpr.c Changed the low level type representation from a strung of unsigned short 2006-02-19 12:29:37 +00:00
shiftexpr.h Move shift expression evaluation into a separate module. More checks and 2004-06-29 20:44:01 +00:00
stackptr.c Changed the low level type representation from a strung of unsigned short 2006-02-19 12:29:37 +00:00
stackptr.h Changed the low level type representation from a strung of unsigned short 2006-02-19 12:29:37 +00:00
standard.c The -A and --ansi switches are gone, together with the __STRICT_ANSI__ 2004-06-21 22:22:11 +00:00
standard.h The -A and --ansi switches are gone, together with the __STRICT_ANSI__ 2004-06-21 22:22:11 +00:00
stdfunc.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
stdfunc.h Rewrote code generation for the strlen standard function. Added code for 2004-06-02 21:33:35 +00:00
stdnames.c Removed ExprLoad to LoadExpr. 2004-06-09 14:12:57 +00:00
stdnames.h Added strcpy 2004-06-04 17:51:49 +00:00
stmt.c Fixed warnings generated by clang (run by Per Olofsson). 2009-09-28 15:59:18 +00:00
stmt.h Switch statement may now contain arbitrary code as the standard requires. The 2008-08-01 19:44:01 +00:00
svnversion.h Print the SVN version number when -V or --version is used. 2009-08-31 17:17:18 +00:00
swstmt.c Fixed asm code to source line relation in switch statements. The switch code 2009-02-23 22:19:23 +00:00
swstmt.h Switch statement may now contain arbitrary code as the standard requires. The 2008-08-01 19:44:01 +00:00
symentry.c Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
symentry.h Rewrote literal handling. Literals are now saved together with other function 2009-12-05 22:39:45 +00:00
symtab.c Renamed attribute handling functions. Added SymHasAttr(). 2009-10-19 10:19:26 +00:00
symtab.h Added code to parse bit fields and enter them into the symbol table. They're 2009-08-29 17:38:53 +00:00
testexpr.c Removed ExprLoad to LoadExpr. 2004-06-09 14:12:57 +00:00
testexpr.h Move the expression test code into separate modules. 2004-03-02 18:00:08 +00:00
textseg.c Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
textseg.h Added a separate output module that is used to manage the output file. 2009-02-23 21:25:59 +00:00
typecmp.c Moved the fascall and near/far flags from the function desriptor into the 2008-08-24 17:33:30 +00:00
typecmp.h Fixed a compatibility problem in TypeCmp: Subtracting pointers with different 2009-07-28 19:29:11 +00:00
typeconv.c Fixed a problem with function pointer conversion. 2009-07-28 19:21:38 +00:00
typeconv.h Fixed a comment. 2008-08-05 15:52:25 +00:00
util.c Some renaming 2004-06-29 20:35:39 +00:00
util.h Some renaming 2004-06-29 20:35:39 +00:00