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))); }
/// <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)); }
/// <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)); }
public BitRange BitRange; // Indicates the range of bits which are live. public BackwardSlicerContext(ContextType type, BitRange range) { Type = type; BitRange = range; }
public RegisterStorage GetSubregister(RegisterStorage reg, BitRange range) { return(Architecture.GetRegister(reg.Domain, range) !); }
public RegisterStorage GetSubregister(RegisterStorage reg, BitRange range) { throw new NotImplementedException(); }