java.lang.Object | |
↳ | com.pnfsoftware.jeb.core.units.code.FlowInformation |
Default IFlowInformation
implementation
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
public static final FlowInformation | NONE | Signifies there is no flow information. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
FlowInformation()
Create an object with an empty target list, no post-compute fall-through, and no delay-slot
(default).
| |||||||||||
FlowInformation(boolean computeFallThrough, int delaySlotCount)
Create an object with an empty target list.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
addTarget(IEntryPointDescription entryPoint)
Add a pointer to the list of possible targets.
| ||||||||||
int |
getDelaySlotCount()
Get the number of instructions in the delay slot.
| ||||||||||
List<IEntryPointDescription> |
getTargets()
Get the a list of targets.
| ||||||||||
static boolean | isAddressInTargets(IFlowInformation flowinfo, long address) | ||||||||||
boolean |
isBroken()
Determine if this object does contain flow information.
| ||||||||||
boolean |
isBrokenKnown()
Determine if this object does contain flow information and all targets are known.
| ||||||||||
boolean |
isBrokenUnknown()
Determine if this object does contain flow information but has no known targets.
| ||||||||||
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.
| ||||||||||
void | setComputeFallThrough(boolean computeFallThrough) | ||||||||||
void | setDelaySlotCount(int delaySlotCount) | ||||||||||
String | toString() |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Signifies there is no flow information. When attached to an instruction, that means the instruction does not modify the flow of execution.
Create an object with an empty target list, no post-compute fall-through, and no delay-slot
(default). Note: this object indicates that the flow is changing, regardless of whether of
not the target list will be populated. To indicate no-change in flow, a user should use
NONE
.
Create an object with an empty target list. Note: this object indicates that the flow is
changing, regardless of whether of not the target list will be populated. To indicate
no-change in flow, a user should use NONE
.
Add a pointer to the list of possible targets.
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.
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 computer by the client/user, instead of stored or computer by the flowinfo object.
Voluntarily broke JavaBeans convention: named `must` instead of `is`.