コード例 #1
0
        private void ProcessInstruction()
        {
            switch (InstructionInfo.Classify(_curILI))
            {
            case EInstructionClass.Call:
                HandleCall();
                break;

            case EInstructionClass.LocalVariableAccess:
            {
                int localIndex;
                ELocalVariableAccess lva = InstructionInfo.IsLocalVariableAccess(_curILI, out localIndex);
                switch (lva)
                {
                case ELocalVariableAccess.ReadVariable:
                    HandleLdLoc(localIndex);
                    break;

                case ELocalVariableAccess.WriteVariable:
                    HandleStLoc(localIndex);
                    break;

                case ELocalVariableAccess.AddressOfVariable:
                    HandleLdLoca(localIndex);
                    if (XInstructionInfo == null)
                    {
                        InhitbitElimination(localIndex);
                    }
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
            break;

            default:
                break;
            }
        }
コード例 #2
0
ファイル: MSILAnalysis.cs プロジェクト: cephdon/systemsharp
 private ELocalVariableAccess IsLVA(int inIndex, ELocalVariableAccess inResult, out int localIndex)
 {
     localIndex = inIndex;
     return(inResult);
 }