TranslationAdvice which represents what
the dex format will be able to represent.
| Modifier and Type | Field and Description |
|---|---|
| private final boolean | disableSourcesInOrder
when true: always returns false for requiresSourcesInOrder |
| private static final int | MIN_INVOKE_IN_ORDER
The minimum source width, in register units, for an invoke instruction that requires its sources to be in order and contiguous. |
| public static final DexTranslationAdvice | NO_SOURCES_IN_ORDER
debug advice for disabling invoke-range optimization |
| public static final DexTranslationAdvice | THE_ONE
|
| Access | Constructor and Description |
|---|---|
| private | |
| private |
| Modifier and Type | Method and Description |
|---|---|
| public int | getMaxOptimalRegisterCount()
Implements org. |
| public boolean | hasConstantOperation(Rop
non-null; the opcodenon-null; the first sourcenon-null; the second sourceImplements org. |
| public boolean | requiresSourcesInOrder(Rop
non-null; opcodenon-null; source listImplements org. |
| private int | Returns: >= 0; rop-form width in register unitsnon-null; list of SSA registersCalculates the total rop width of the list of SSA registers |
| disableSourcesInOrder | back to summary |
|---|---|
| private final boolean disableSourcesInOrder when true: always returns false for requiresSourcesInOrder | |
| MIN_INVOKE_IN_ORDER | back to summary |
|---|---|
| private static final int MIN_INVOKE_IN_ORDER The minimum source width, in register units, for an invoke instruction that requires its sources to be in order and contiguous. | |
| NO_SOURCES_IN_ORDER | back to summary |
|---|---|
| public static final DexTranslationAdvice NO_SOURCES_IN_ORDER debug advice for disabling invoke-range optimization | |
| THE_ONE | back to summary |
|---|---|
| public static final DexTranslationAdvice THE_ONE
| |
| DexTranslationAdvice | back to summary |
|---|---|
| private DexTranslationAdvice() This class is not publicly instantiable. Use | |
| DexTranslationAdvice | back to summary |
|---|---|
| private DexTranslationAdvice(boolean disableInvokeRange) | |
| getMaxOptimalRegisterCount | back to summary |
|---|---|
| public int getMaxOptimalRegisterCount() Implements org. Doc from org. Gets the maximum register width that can be represented optimally. For example, Dex bytecode does not have instruction forms that take register numbers larger than 15 for all instructions so DexTranslationAdvice returns 15 here.
| |
| hasConstantOperation | back to summary |
|---|---|
| public boolean hasConstantOperation(Rop opcode, RegisterSpec sourceA, RegisterSpec sourceB) Implements org. Doc from org. Returns an indication of whether the target can directly represent an instruction with the given opcode operating on the given arguments, where the last source argument is used as a constant. (That is, the last argument must have a type which indicates it is a known constant.) The instruction associated must have exactly two sources.
| |
| requiresSourcesInOrder | back to summary |
|---|---|
| public boolean requiresSourcesInOrder(Rop opcode, RegisterSpecList sources) Implements org. Doc from org. Returns true if the translation target requires the sources of the specified opcode to be in order and contiguous (eg, for an invoke-range)
| |
| totalRopWidth | back to summary |
|---|---|
| private int totalRopWidth(RegisterSpecList sources) Calculates the total rop width of the list of SSA registers
| |