avrora.stack.isea
Class ISEAnalyzer
java.lang.Object
avrora.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.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
ISEAnalyzer
public ISEAnalyzer(Program p)
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)