1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-01 13:41:34 +00:00

Fix for issue #735

This commit is contained in:
laubzega 2018-10-14 13:53:14 -07:00 committed by Oliver Schmidt
parent 03e43d1fbf
commit 8eb9f4a8aa

View File

@ -2056,8 +2056,14 @@ unsigned OptPrecalc (CodeSeg* S)
** results we don't already have (including the flags), so
** remove it. Something like this is generated as a result of
** a compare where parts of the values are known to be zero.
** The only situation where we need to leave things as they are
** is when V flag is being tested in the next instruction,
** because ADC/SBC #0 always clears it.
*/
if (In->RegA == 0 && CE_IsKnownImm (E, 0x00)) {
if (In->RegA == 0 && CE_IsKnownImm (E, 0x00) &&
(E = CS_GetEntry (S, I + 1)) &&
E->OPC != OP65_BVC &&
E->OPC != OP65_BVS ) {
/* 0-0 or 0+0 -> remove */
CS_DelEntry (S, I);
++Changes;