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:
parent
c76c989ab9
commit
b0a2e6375f
@ -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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user