From ca4ae4ce2ecaf61cb095b55ef859f8ef6db1fc1d Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Mon, 16 Jul 2018 00:07:22 +0200 Subject: [PATCH] Fix optimization of ADC on 6502 --- .../millfork/assembly/mos/opt/AlwaysGoodOptimizations.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/millfork/assembly/mos/opt/AlwaysGoodOptimizations.scala b/src/main/scala/millfork/assembly/mos/opt/AlwaysGoodOptimizations.scala index c3b4698b..ad5e5865 100644 --- a/src/main/scala/millfork/assembly/mos/opt/AlwaysGoodOptimizations.scala +++ b/src/main/scala/millfork/assembly/mos/opt/AlwaysGoodOptimizations.scala @@ -119,8 +119,8 @@ object AlwaysGoodOptimizations { (Elidable & MatchA(0) & MatchParameter(1) & HasOpcode(ADC) & HasAddrMode(Immediate) & - HasClear(State.D) & HasClear(State.C) & DoesntMatterWhatItDoesWith(State.V)) ~ - Where(ctx => (ctx.get[Constant](1) + ctx.get[Int](0)).quickSimplify match { + HasClear(State.D) & HasClear(State.C) & DoesntMatterWhatItDoesWith(State.V, State.C)) ~ + Where(ctx => (ctx.get[Constant](1).loByte.quickSimplify + ctx.get[Int](0).&(0xff)).quickSimplify match { case NumericConstant(x, _) => x == (x & 0xff) case _ => false }) ~~> { (code, ctx) =>