Replace application parameters with ssa identifiers
Наследование: InstructionTransformer
Пример #1
0
 public FpuStackReturnGuesser(SsaState ssa, DecompilerEventListener listener)
 {
     this.ssa              = ssa;
     this.ssam             = new SsaMutator(ssa);
     this.ssaIdTransformer = new SsaIdentifierTransformer(ssa);
     this.listener         = listener;
 }
Пример #2
0
 public ValuePropagator(
     IProcessorArchitecture arch,
     SsaState ssa,
     DecompilerEventListener eventListener)
 {
     this.arch             = arch;
     this.ssa              = ssa;
     this.ssaIdTransformer = new SsaIdentifierTransformer(ssa);
     this.evalCtx          = new SsaEvaluationContext(arch, ssa.Identifiers);
     this.eval             = new ExpressionSimplifier(evalCtx, eventListener);
     this.eventListener    = eventListener;
 }
Пример #3
0
 public ValuePropagator(
     SegmentMap segmentMap,
     SsaState ssa,
     DecompilerEventListener eventListener)
 {
     this.ssa              = ssa;
     this.arch             = ssa.Procedure.Architecture;
     this.eventListener    = eventListener;
     this.ssaIdTransformer = new SsaIdentifierTransformer(ssa);
     this.evalCtx          = new SsaEvaluationContext(arch, ssa.Identifiers);
     this.eval             = new ExpressionSimplifier(segmentMap, evalCtx, eventListener);
 }
Пример #4
0
 public IndirectCallRewriter(
     Program program,
     SsaState ssa,
     DecompilerEventListener eventListener)
 {
     this.program = program;
     this.proc = ssa.Procedure;
     this.ssa = ssa;
     this.asc = new IndirectCallTypeAscender(program);
     this.expander = new IndirectCallExpander(ssa);
     this.ssaIdTransformer = new SsaIdentifierTransformer(ssa);
     this.eventListener = eventListener;
 }
Пример #5
0
 public IndirectCallRewriter(
     Program program,
     SsaState ssa,
     DecompilerEventListener eventListener)
 {
     this.program          = program;
     this.proc             = ssa.Procedure;
     this.ssa              = ssa;
     this.asc              = new IndirectCallTypeAscender(program);
     this.expander         = new IndirectCallExpander(ssa);
     this.ssaIdTransformer = new SsaIdentifierTransformer(ssa);
     this.eventListener    = eventListener;
 }
Пример #6
0
 public ArgumentTransformer(SsaIdentifierTransformer outer)
 {
     this.outer = outer;
 }
Пример #7
0
 public DestinationTransformer(SsaIdentifierTransformer outer) :
     base(outer)
 {
     this.outer = outer;
 }
Пример #8
0
 public UsedIdsTransformer(SsaIdentifierTransformer outer)
 {
     this.outer = outer;
 }
Пример #9
0
 public FpuStackReturnGuesser(SsaState ssa)
 {
     this.ssa              = ssa;
     this.ssam             = new SsaMutator(ssa);
     this.ssaIdTransformer = new SsaIdentifierTransformer(ssa);
 }
Пример #10
0
 public ArgumentTransformer(SsaIdentifierTransformer outer)
 {
     this.outer = outer;
 }