public interface

IEAssign

implements IEStatement
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEAssign

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement
Public Methods
abstract boolean downgradeCallToBreak()
Downgrade a call-to-sub to a simple flow-breaker.
abstract IEAssign duplicateWithNewOperands(IEGeneric dst, IEGeneric src)
abstract IEImm evaluate(EState state, boolean skipPCUpdate)
abstract IEBranchDetails getBranchDetails()
abstract IEBranchDetails getBranchDetails(boolean createIfNecessary)
abstract IFlowInformation getBreakingFlow(long instructionAddress, boolean keepNativeAddresses)
abstract IEGeneric getDstOperand()
abstract IEGeneric getLeftOperand()
abstract IEGeneric getRightOperand()
abstract IEGeneric getSrcOperand()
abstract boolean isBreakingFlow()
abstract boolean isRoutineCall()
abstract boolean isTentativeCall()
abstract void setBranchDetails(IEBranchDetails branchDetails)
abstract boolean upgradeBreakToCall(long instructionAddress)
Upgrade a flow-breaker to a call-to-sub or potential (non-returning) call-to-sub.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.IInstruction
From interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
From interface com.pnfsoftware.jeb.core.units.code.IResizableInstruction
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement

Public Methods

public abstract boolean downgradeCallToBreak ()

Downgrade a call-to-sub to a simple flow-breaker. The source cannot be a conditional IR. Important! The caller is responsible for updating the CFG to maintain consistency with the IR, e.g. the fall-through edge may have to be removed.

Returns
  • success indicator

public abstract IEAssign duplicateWithNewOperands (IEGeneric dst, IEGeneric src)

public abstract IEImm evaluate (EState state, boolean skipPCUpdate)

public abstract IEBranchDetails getBranchDetails ()

public abstract IEBranchDetails getBranchDetails (boolean createIfNecessary)

public abstract IFlowInformation getBreakingFlow (long instructionAddress, boolean keepNativeAddresses)

public abstract IEGeneric getDstOperand ()

public abstract IEGeneric getLeftOperand ()

public abstract IEGeneric getRightOperand ()

public abstract IEGeneric getSrcOperand ()

public abstract boolean isBreakingFlow ()

Returns
  • true if this IR is a simple flow-breaker PC-assign

public abstract boolean isRoutineCall ()

Returns
  • true if this IR is a call-to-sub PC-assign

public abstract boolean isTentativeCall ()

Returns
  • true if this IR is a tentative call-to-sub PC-assign (this method will return false if isRoutineCall() returns false)

public abstract void setBranchDetails (IEBranchDetails branchDetails)

public abstract boolean upgradeBreakToCall (long instructionAddress)

Upgrade a flow-breaker to a call-to-sub or potential (non-returning) call-to-sub. The source cannot be a conditional IR. If the target is unknown, the PC-assign may be converted to a potential call; if there there is a single target matching the fall-through instruction, the PC-assign may be converted to a call; else the method will fail.

Returns
  • success indicator