Class AbstractIntRegisterMachine.BasicRegisterFlowProvider
java.lang.Object
com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine.BasicRegisterFlowProvider
- All Implemented Interfaces:
AbstractIntRegisterMachine.FlowProvider
- Enclosing class:
AbstractIntRegisterMachine
protected abstract static class AbstractIntRegisterMachine.BasicRegisterFlowProvider
extends Object
implements AbstractIntRegisterMachine.FlowProvider
This gives some basic facilities for shoving things around on the stack. Client analyses should
subclass this as needed.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classUpdate the machine state to account for an instruction -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedOnly subclasses can instantiate -
Method Summary
Modifier and TypeMethodDescriptionflow(AbstractIntRegisterMachine.MachineState entry, DexCFG.BasicBlock basicBlock) Compute the MachineState at the exit of a basic block, given a MachineState at the block's entry.flow(AbstractIntRegisterMachine.MachineState entry, DexCFG.BasicBlock from, DexCFG.BasicBlock to) Compute the MachineState at the end of an edge, given a MachineState at the edges's entry.protected DexCFG.BasicBlockprotected intprotected intprotected DexCFG.BasicBlockabstract Instruction[]protected voidinit(AbstractIntRegisterMachine.BasicRegisterFlowProvider.BasicRegisterMachineVisitor v, Instruction.Visitor ev) Initialize the visitors used to perform the flow functionsbooleanboolean
-
Field Details
-
workingState
-
-
Constructor Details
-
BasicRegisterFlowProvider
Only subclasses can instantiate
-
-
Method Details
-
init
protected void init(AbstractIntRegisterMachine.BasicRegisterFlowProvider.BasicRegisterMachineVisitor v, Instruction.Visitor ev) Initialize the visitors used to perform the flow functions -
needsNodeFlow
public boolean needsNodeFlow()- Specified by:
needsNodeFlowin interfaceAbstractIntRegisterMachine.FlowProvider
-
needsEdgeFlow
public boolean needsEdgeFlow()- Specified by:
needsEdgeFlowin interfaceAbstractIntRegisterMachine.FlowProvider
-
flow
public AbstractIntRegisterMachine.MachineState flow(AbstractIntRegisterMachine.MachineState entry, DexCFG.BasicBlock basicBlock) Description copied from interface:AbstractIntRegisterMachine.FlowProviderCompute the MachineState at the exit of a basic block, given a MachineState at the block's entry.- Specified by:
flowin interfaceAbstractIntRegisterMachine.FlowProvider
-
flow
public AbstractIntRegisterMachine.MachineState flow(AbstractIntRegisterMachine.MachineState entry, DexCFG.BasicBlock from, DexCFG.BasicBlock to) Description copied from interface:AbstractIntRegisterMachine.FlowProviderCompute the MachineState at the end of an edge, given a MachineState at the edges's entry.- Specified by:
flowin interfaceAbstractIntRegisterMachine.FlowProvider
-
getCurrentInstructionIndex
protected int getCurrentInstructionIndex() -
getCurrentProgramCounter
protected int getCurrentProgramCounter() -
getCurrentBlock
-
getCurrentSuccessor
-
getInstructions
-