Class AbstractIntRegisterMachine.BasicRegisterFlowProvider
java.lang.Object
com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine.BasicRegisterFlowProvider
- All Implemented Interfaces:
DexConstants, AbstractIntRegisterMachine.FlowProvider
- Enclosing class:
AbstractIntRegisterMachine
protected abstract static class AbstractIntRegisterMachine.BasicRegisterFlowProvider
extends Object
implements AbstractIntRegisterMachine.FlowProvider, DexConstants
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
FieldsFields inherited from interface DexConstants
ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_CONSTRUCTOR, ACC_DECLARED_SYNCHRONIZED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_private, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_STRICT, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_UNUSED, ACC_VARARGS, ACC_VOLATILE, VALUE_ANNOTATION, VALUE_ARRAY, VALUE_BOOLEAN, VALUE_BYTE, VALUE_CHAR, VALUE_DOUBLE, VALUE_ENUM, VALUE_FIELD, VALUE_FLOAT, VALUE_INT, VALUE_LONG, VALUE_METHOD, VALUE_NULL, VALUE_SHORT, VALUE_STRING, VALUE_TYPEModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
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
-