From 9866c974ad78e3a4dd2e59df6f1c14956e9c0003 Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Sat, 12 Feb 2022 02:12:55 +0100 Subject: [PATCH] Don't apply Constant index offset propagation in decimal mode --- .../millfork/assembly/mos/opt/DangerousOptimizations.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/millfork/assembly/mos/opt/DangerousOptimizations.scala b/src/main/scala/millfork/assembly/mos/opt/DangerousOptimizations.scala index 64c9f9b3..ba427a25 100644 --- a/src/main/scala/millfork/assembly/mos/opt/DangerousOptimizations.scala +++ b/src/main/scala/millfork/assembly/mos/opt/DangerousOptimizations.scala @@ -15,7 +15,7 @@ object DangerousOptimizations { // TODO: try to guess when overflow can happen needsFlowInfo = FlowInfoRequirement.BothFlows, (Elidable & HasOpcode(CLC)).? ~ - (Elidable & HasClear(State.C) & HasOpcode(ADC) & MatchImmediate(0) & DoesntMatterWhatItDoesWith(State.V, State.C)) ~ + (Elidable & HasClear(State.C) & HasClear(State.D) & HasOpcode(ADC) & MatchImmediate(0) & DoesntMatterWhatItDoesWith(State.V, State.C)) ~ ( (HasOpcode(TAY) & DoesntMatterWhatItDoesWith(State.N, State.Z, State.A)) ~ (Linear & Not(ConcernsY)).* @@ -25,7 +25,7 @@ object DangerousOptimizations { ctx.get[List[AssemblyLine]](1) :+ last.copy(parameter = last.parameter.+(ctx.get[Constant](0)).quickSimplify) }, (Elidable & HasOpcode(CLC)).? ~ - (Elidable & HasClear(State.C) & HasOpcode(ADC) & MatchImmediate(0) & DoesntMatterWhatItDoesWith(State.V, State.C)) ~ + (Elidable & HasClear(State.C) & HasClear(State.D) & HasOpcode(ADC) & MatchImmediate(0) & DoesntMatterWhatItDoesWith(State.V, State.C)) ~ ( (HasOpcode(TAX) & DoesntMatterWhatItDoesWith(State.N, State.Z, State.A)) ~ (Linear & Not(ConcernsX)).*