branches - if we find a label, just forget all information we had before.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4116
b7a2c559-68d2-44c3-8de9-
860c34a00d81
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
/* While searching, track register load insns, so we can tell
* what is in a register once pushax is encountered.
*/
/* While searching, track register load insns, so we can tell
* what is in a register once pushax is encountered.
*/
+ if (CE_HasLabel (E)) {
+ /* Currently we don't track across branches */
+ InvalidateLoadRegInfo (&Data.Lhs.A);
+ InvalidateLoadRegInfo (&Data.Lhs.X);
+ InvalidateLoadRegInfo (&Data.Lhs.Y);
+ }
if (CE_IsCallTo (E, "pushax")) {
Data.PushIndex = I;
State = FoundPush;
if (CE_IsCallTo (E, "pushax")) {
Data.PushIndex = I;
State = FoundPush;
* follow and in the meantime, track zeropage usage and check
* for code that will disable us from translating the sequence.
*/
* follow and in the meantime, track zeropage usage and check
* for code that will disable us from translating the sequence.
*/
+ if (CE_HasLabel (E)) {
+ /* Currently we don't track across branches */
+ InvalidateLoadRegInfo (&Data.Rhs.A);
+ InvalidateLoadRegInfo (&Data.Rhs.X);
+ InvalidateLoadRegInfo (&Data.Rhs.Y);
+ }
if (E->OPC == OP65_JSR) {
/* Subroutine call: Check if this is one of the functions,
if (E->OPC == OP65_JSR) {
/* Subroutine call: Check if this is one of the functions,