Exemple #1
0
        public SlicerResult VisitCast(Cast cast, BackwardSlicerContext ctx)
        {
            var range = new BitRange(0, (short)cast.DataType.BitSize);

            return(cast.Expression.Accept(this, new BackwardSlicerContext(ctx.Type, range)));
        }
Exemple #2
0
 /// <summary>
 /// The expression is being used in a conditional context.
 /// </summary>
 /// <param name="bitRange"></param>
 /// <returns></returns>
 public static BackwardSlicerContext Cond(BitRange bitRange)
 {
     return(new BackwardSlicerContext(ContextType.Condition, bitRange));
 }
Exemple #3
0
 /// <summary>
 /// The expression is being used in a jump table context.
 /// </summary>
 /// <param name="bitRange"></param>
 /// <returns></returns>
 public static BackwardSlicerContext Jump(BitRange bitRange)
 {
     return(new BackwardSlicerContext(ContextType.Jumptable, bitRange));
 }
Exemple #4
0
        public BitRange BitRange;   // Indicates the range of bits which are live.

        public BackwardSlicerContext(ContextType type, BitRange range)
        {
            Type     = type;
            BitRange = range;
        }
Exemple #5
0
 public RegisterStorage GetSubregister(RegisterStorage reg, BitRange range)
 {
     return(Architecture.GetRegister(reg.Domain, range) !);
 }
Exemple #6
0
 public RegisterStorage GetSubregister(RegisterStorage reg, BitRange range)
 {
     throw new NotImplementedException();
 }