예제 #1
0
        public override bool Equals(object obj)
        {
            StackLocalStorage sas = obj as StackLocalStorage;

            if (sas == null)
            {
                return(false);
            }
            return(StackOffset == sas.StackOffset);
        }
예제 #2
0
파일: Frame.cs 프로젝트: feelworld/reko
 public Identifier FindStackLocal(int offset, int size)
 {
     foreach (Identifier id in identifiers)
     {
         StackLocalStorage loc = id.Storage as StackLocalStorage;
         if (loc != null && loc.StackOffset == offset && id.DataType.Size == size)
         {
             return(id);
         }
     }
     return(null);
 }
예제 #3
0
        public override int OffsetOf(Storage stgSub)
        {
            StackLocalStorage local = stgSub as StackLocalStorage;

            if (local == null)
            {
                return(-1);
            }
            if (local.StackOffset >= StackOffset && local.StackOffset + local.DataType.Size <= StackOffset + DataType.Size)
            {
                return((local.StackOffset - StackOffset) * DataType.BitsPerByte);
            }
            return(-1);
        }
예제 #4
0
 public Expression VisitStackLocalStorage(StackLocalStorage local)
 {
     throw new NotSupportedException(string.Format("A {0} can't be used as a formal parameter.", local.GetType().FullName));
 }
예제 #5
0
 Identifier StorageVisitor <Identifier> .VisitStackLocalStorage(StackLocalStorage local)
 {
     throw new NotImplementedException();
 }