protected abstract static class AbstractIntRegisterMachine.BasicRegisterFlowProvider extends Object implements AbstractIntRegisterMachine.FlowProvider, DexConstants
Modifier and Type | Class and Description |
---|---|
protected class |
AbstractIntRegisterMachine.BasicRegisterFlowProvider.BasicRegisterMachineVisitor
Update the machine state to account for an instruction
|
Modifier and Type | Field and Description |
---|---|
protected AbstractIntRegisterMachine.MachineState |
workingState |
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_TYPE
Modifier | Constructor and Description |
---|---|
protected |
BasicRegisterFlowProvider(DexCFG cfg)
Only subclasses can instantiate
|
protected AbstractIntRegisterMachine.MachineState workingState
protected BasicRegisterFlowProvider(DexCFG cfg)
protected void init(AbstractIntRegisterMachine.BasicRegisterFlowProvider.BasicRegisterMachineVisitor v, Instruction.Visitor ev)
public boolean needsNodeFlow()
needsNodeFlow
in interface AbstractIntRegisterMachine.FlowProvider
public boolean needsEdgeFlow()
needsEdgeFlow
in interface AbstractIntRegisterMachine.FlowProvider
public AbstractIntRegisterMachine.MachineState flow(AbstractIntRegisterMachine.MachineState entry, DexCFG.BasicBlock basicBlock)
AbstractIntRegisterMachine.FlowProvider
flow
in interface AbstractIntRegisterMachine.FlowProvider
public AbstractIntRegisterMachine.MachineState flow(AbstractIntRegisterMachine.MachineState entry, DexCFG.BasicBlock from, DexCFG.BasicBlock to)
AbstractIntRegisterMachine.FlowProvider
flow
in interface AbstractIntRegisterMachine.FlowProvider
protected int getCurrentInstructionIndex()
protected int getCurrentProgramCounter()
protected DexCFG.BasicBlock getCurrentBlock()
protected DexCFG.BasicBlock getCurrentSuccessor()
public abstract Instruction[] getInstructions()