فهرست منبع

Remove broken adds/cmn with condition check optimization (#218)

gdkchan 7 سال پیش
والد
کامیت
c99b2884e4
2فایلهای تغییر یافته به همراه0 افزوده شده و 7 حذف شده
  1. 0 2
      ChocolArm64/Instruction/AInstEmitAlu.cs
  2. 0 5
      ChocolArm64/Translation/AILEmitterCtx.cs

+ 0 - 2
ChocolArm64/Instruction/AInstEmitAlu.cs

@@ -50,8 +50,6 @@ namespace ChocolArm64.Instruction
 
 
         public static void Adds(AILEmitterCtx Context)
         public static void Adds(AILEmitterCtx Context)
         {
         {
-            Context.TryOptMarkCondWithoutCmp();
-
             EmitDataLoadOpers(Context);
             EmitDataLoadOpers(Context);
 
 
             Context.Emit(OpCodes.Add);
             Context.Emit(OpCodes.Add);

+ 0 - 5
ChocolArm64/Translation/AILEmitterCtx.cs

@@ -187,11 +187,6 @@ namespace ChocolArm64.Translation
                 Ldloc(Tmp3Index, AIoType.Int, OptOpLastCompare.RegisterSize);
                 Ldloc(Tmp3Index, AIoType.Int, OptOpLastCompare.RegisterSize);
                 Ldloc(Tmp4Index, AIoType.Int, OptOpLastCompare.RegisterSize);
                 Ldloc(Tmp4Index, AIoType.Int, OptOpLastCompare.RegisterSize);
 
 
-                if (OptOpLastCompare.Emitter == AInstEmit.Adds)
-                {
-                    Emit(OpCodes.Neg);
-                }
-
                 ILOp = BranchOps[Cond];
                 ILOp = BranchOps[Cond];
             }
             }
             else if (IntCond < 14)
             else if (IntCond < 14)