com.pnfsoftware.jeb.core.units.code.IFlowInformation |
Known Indirect Subclasses |
Information relative to execution flow changes. Flow changes are important objects used to determine boundaries of basic blocks in a CFG.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract int |
getDelaySlotCount()
Get the number of instructions in the delay slot.
| ||||||||||
abstract List<ICodePointer> |
getTargets()
Get the a list of targets.
| ||||||||||
abstract boolean |
isBroken()
Determine if this object does contain flow information.
| ||||||||||
abstract boolean |
isBrokenKnown()
Determine if this object does contain flow information and all targets are known.
| ||||||||||
abstract boolean |
isBrokenUnknown()
Determine if this object does contain flow information but has no known targets.
| ||||||||||
abstract boolean |
mustComputeFallThrough()
Indicate if the flow information includes a fall-through address (relative to the current
instruction) that is not present in the FlowInfo object itself.
| ||||||||||
abstract boolean |
noFallThrough()
Indicate whether this flow information forbids the implicit calculation of a fall-through
edge.
|
Get the number of instructions in the delay slot.
Get the a list of targets. Be careful, this list does not include the fall-through target if
it is implied (eg, when flow-info is returned by getRoutineCall(long)
) or when
its calculation was requested dynamically (via mustComputeFallThrough()
).
Determine if this object does contain flow information.
Determine if this object does contain flow information and all targets are known.
Determine if this object does contain flow information but has no known targets.
IMPORTANT: if this flow info object is mixed (it specifies having unknown target(s), and also bears known targets), this method returns false.
Indicate if the flow information includes a fall-through address (relative to the current instruction) that is not present in the FlowInfo object itself. If this method returns true, the caller must dynamically calculate the fall-through address itself.
Note that the creator of a flowinfo object may decide to add the fall-through (if any) in the flowinfo object target list. However, in some cases, such as branching instructions with delay slot(s), it is simpler to indicate that the branching instruction allows a fall-through flow, but that it should be computed by the client/user, instead of stored or computed by the flowinfo object.
Indicate whether this flow information forbids the implicit calculation of a fall-through
edge. (A fall-through may be explicitly specified as a target
,
regardless.)