Fixed problems with OptPrecalc. It removed insns because it results were known

- but the insns generate a carry which may be needed later.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4115 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2009-09-04 15:44:48 +00:00
parent 67d64e67d5
commit f6c589bf8e

View File

@@ -1880,9 +1880,7 @@ unsigned OptPrecalc (CodeSeg* S)
} }
break; break;
case OP65_ASL:
case OP65_EOR: case OP65_EOR:
case OP65_LSR:
if (RegValIsKnown (Out->RegA)) { if (RegValIsKnown (Out->RegA)) {
/* Accu op zp with known contents */ /* Accu op zp with known contents */
Arg = MakeHexArg (Out->RegA); Arg = MakeHexArg (Out->RegA);
@@ -1901,9 +1899,6 @@ unsigned OptPrecalc (CodeSeg* S)
/* 0-0 or 0+0 -> remove */ /* 0-0 or 0+0 -> remove */
CS_DelEntry (S, I); CS_DelEntry (S, I);
++Changes; ++Changes;
} else if (RegValIsKnown (Out->RegA)) {
/* Accu op zp with known contents */
Arg = MakeHexArg (Out->RegA);
} }
break; break;