public void Mov64(InstructionNode node)
        {
            if (!node.Operand1.IsConstantZero)
            {
                return;
            }

            if (OptimizationStage.AreStatusFlagsUsed(node.Next, true, true, true, true, true) == TriState.No)
            {
                node.SetInstruction(X64.Xor64, node.Result, node.Result, node.Result);
                ZeroToXorSubstitutionCount++;
            }
        }
Esempio n. 2
0
        public void Mov64(Context context)
        {
            if (!context.Operand1.IsConstantZero)
            {
                return;
            }

            if (OptimizationStage.AreStatusFlagsUsed(context.Node.Next, true, true, true, true, true) == TriState.No)
            {
                context.SetInstruction(X64.Xor64, context.Result, context.Result, context.Result);
                ZeroToXorSubstitutionCount++;
            }
        }