1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-18 00:07:21 +00:00

Fixed wrong assumptions in the optimizer when subroutine calls to absolute

addresses are made.


git-svn-id: svn://svn.cc65.org/cc65/trunk@2800 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-12-21 10:23:23 +00:00
parent c76c989ab9
commit b0a2e6375f

View File

@ -37,6 +37,7 @@
#include <string.h> #include <string.h>
/* common */ /* common */
#include "chartype.h"
#include "coll.h" #include "coll.h"
/* cc65 */ /* cc65 */
@ -309,6 +310,15 @@ void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg)
return; return;
} }
} else if (IsDigit (Name[0]) || Name[0] == '$') {
/* A call to a numeric address. Assume that all CPU registers get
* used, but no memory contents are changed.
*/
*Use = REG_AXY;
*Chg = REG_AXY;
return;
} else { } else {
/* Search for the function in the list of builtin functions */ /* Search for the function in the list of builtin functions */
@ -629,7 +639,7 @@ unsigned GetKnownReg (unsigned Use, const RegContents* RC)
} }
} }
static cmp_t FindCmpCond (const char* Code, unsigned CodeLen) static cmp_t FindCmpCond (const char* Code, unsigned CodeLen)
/* Search for a compare condition by the given code using the given length */ /* Search for a compare condition by the given code using the given length */