avrora.stack.isea
Class ISEAnalyzer

java.lang.Object
  extended byavrora.stack.isea.ISEAnalyzer
All Implemented Interfaces:
ISEInterpreter.SummaryCache

public class ISEAnalyzer
extends java.lang.Object
implements ISEInterpreter.SummaryCache

The ISEAnalyzer class is a static analyzer for machine code. This class implements intra-procedural side-effect analysis. This determines the set of registers read and modified by this procedure locally; this information can be used to reduce the amount of work that other static analyzers must do when they analyze code, because they can use the results of this analysis to know which registers' values are used, and which registers are unmodified by a procedure.


Field Summary
protected  ControlFlowGraph cfg
           
protected  ProcedureMap pmap
           
protected  Verbose.Printer printer
           
protected  java.util.HashMap procedureSummaries
           
protected  Program program
           
protected  java.util.HashMap returnSummaries
           
protected  SourceMapping smap
           
protected  java.util.Stack stack
           
 
Constructor Summary
ISEAnalyzer(Program p)
           
 
Method Summary
 void analyze()
           
 void analyze(int loc)
           
 void analyzeProcedure(ControlFlowGraph.Block start)
           
 ISEState getProcedureSummary(int start)
           
 ISEState getReturnSummary(int retaddr)
           
 void recordReturnSummary(int retaddr, ISEState rs)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

program

protected final Program program

smap

protected final SourceMapping smap

cfg

protected final ControlFlowGraph cfg

pmap

protected final ProcedureMap pmap

procedureSummaries

protected final java.util.HashMap procedureSummaries

returnSummaries

protected final java.util.HashMap returnSummaries

stack

protected final java.util.Stack stack

printer

protected final Verbose.Printer printer
Constructor Detail

ISEAnalyzer

public ISEAnalyzer(Program p)
Method Detail

getProcedureSummary

public ISEState getProcedureSummary(int start)
Specified by:
getProcedureSummary in interface ISEInterpreter.SummaryCache

recordReturnSummary

public void recordReturnSummary(int retaddr,
                                ISEState rs)
Specified by:
recordReturnSummary in interface ISEInterpreter.SummaryCache

getReturnSummary

public ISEState getReturnSummary(int retaddr)

analyze

public void analyze()

analyzeProcedure

public void analyzeProcedure(ControlFlowGraph.Block start)

analyze

public void analyze(int loc)