com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement |
![]() |
Base class for all IR statements. Statements are specialized expressions. The most common
statement is IEAssign
. Additional statements introduced as the IR gets optimized and
refined are: IENop
, IECall
, IEReturn
, IEJump
, and
IEJumpFar
, IESwitch
and the almighty IEUntranslatedInstruction
.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract void | addLowerLevelAddress(long address) | ||||||||||
abstract void |
adjustSize(int delta)
Update the the size of this statement.
| ||||||||||
abstract void | copyLowerLevelAddresses(IEStatement srcStm) | ||||||||||
abstract IERoutineContext | getContext() | ||||||||||
abstract Collection<Long> | getLowerLevelAddresses() | ||||||||||
abstract int |
replaceDefinedVar(IEVar var, IEVar repl)
Replace the variables that are defined by this statement.
| ||||||||||
abstract int |
replaceVar(IEVar var, IEGeneric repl, boolean doNotReplaceDefinedVariables)
Deep replace.
| ||||||||||
abstract void | setSize(int newsize) | ||||||||||
abstract boolean | writesMemory() |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() |
Update the the size of this statement.
delta | the delta (positive or negative) to to be applied to the instruction size |
---|
Replace the variables that are defined by this statement.
Deep replace. Specialized version allows used-vars replacement only. The implementation is responsible for IRE duplication before statements, to ensure that the resulting statement or group of statement does not contain duplicate references to mutable objects.@return
IllegalIntermediateExpressionException | if an illegal replacement was attempted |
---|