public class SingleStartAndroidModel extends AbstractAndroidModel
You can then add instructions to the body using the insts-Instruction factory. Instructions don't have to be in ascending order. Instead they will be sorted by their IIndex once the model gets finished. If you want to add loops to the model you might want to have a look at AndroidModelParameterManager which aids in keeping track of SSA-Variables and adding Phi-Functions.
LoopAndroidModel
,
LoopKillAndroidModel
body, entryPoints, insts, paramManager
Constructor and Description |
---|
SingleStartAndroidModel(VolatileMethodSummary body,
TypeSafeInstructionFactory insts,
SSAValueManager paramManager,
Iterable<? extends Entrypoint> entryPoints) |
Modifier and Type | Method and Description |
---|---|
protected int |
enterEND_OF_LOOP(int PC)
Loops to MULTIPLE_TIMES_IN_LOOP.
|
protected int |
enterMULTIPLE_TIMES_IN_LOOP(int PC)
Prepares the PC to get looped to.
|
enter, enterAFTER_LOOP, enterAT_FIRST, enterAT_LAST, enterBEFORE_LOOP, enterMIDDLE_OF_LOOP, enterSTART_OF_LOOP, finish, hadSectionSwitch, leaveAT_LAST, returnTypesBetween
public SingleStartAndroidModel(VolatileMethodSummary body, TypeSafeInstructionFactory insts, SSAValueManager paramManager, Iterable<? extends Entrypoint> entryPoints)
body
- The MethodSummary to add instructions toinsts
- Will be used to generate the instructionsprotected int enterMULTIPLE_TIMES_IN_LOOP(int PC)
#enter(ExecutionOrder.MULTIPLE_TIMES_IN_LOOP, int)
instead
Sideeffects: currentSection is updated, instructions are inserted into the bodyenterMULTIPLE_TIMES_IN_LOOP
in class AbstractAndroidModel
PC
- Program Counter instructions shall be placed at. In most cases
you'll simply pass body.getNextProgramCounter()protected int enterEND_OF_LOOP(int PC)
#enter(ExecutionOrder.END_OF_LOOP, int)
instead
Sideeffects: currentSection is updated, instructions are inserted into the bodyenterEND_OF_LOOP
in class AbstractAndroidModel
PC
- Program Counter instructions shall be placed at. In most cases
you'll simply pass body.getNextProgramCounter()