Package ghidra.program.model.listing
Enum Class FlowOverride
- All Implemented Interfaces:
Serializable
,Comparable<FlowOverride>
,Constable
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescriptionOverride the primary CALL or RETURN with a suitable JUMP operation.Override the primary BRANCH or RETURN with a suitable CALL operation.Override the primary BRANCH, CALL, or RETURN with a suitable CALL/RETURN operationNo flow override has been establishedOverride the primary BRANCH or CALL with a suitable RETURN operation. -
Method Summary
Modifier and TypeMethodDescriptionstatic FlowOverride
getFlowOverride
(int ordinal) Return FlowOrdinal with the specified ordinal value.static FlowType
getModifiedFlowType
(FlowType originalFlowType, FlowOverride flowOverride) Get modified FlowType resulting from the application of the specified flowOverridestatic FlowOverride
Returns the enum constant of this class with the specified name.static FlowOverride[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
NONE
No flow override has been established -
BRANCH
Override the primary CALL or RETURN with a suitable JUMP operation.Pcode mapping: CALL -> BRANCH CALLIND -> BRANCHIND RETURN -> BRANCHIND
-
CALL
Override the primary BRANCH or RETURN with a suitable CALL operation.Pcode mapping: BRANCH -> CALL BRANCHIND -> CALLIND CBRANCH <addr>,<cond> -> (complex mapping) tmp = BOOL_NEGATE <cond> CBRANCH <label>,tmp CALL <addr> <label> RETURN -> CALLIND
-
CALL_RETURN
Override the primary BRANCH, CALL, or RETURN with a suitable CALL/RETURN operationPcode mapping: BRANCH -> CALL/RETURN BRANCHIND -> CALLIND/RETURN CBRANCH <addr>,<cond> -> (complex mapping) tmp = BOOL_NEGATE <cond> CBRANCH <label>,tmp CALL <addr> RETURN 0 <label> CALL -> CALL/RETURN CALLIND -> CALLIND/RETURN RETURN -> CALLIND/RETURN
-
RETURN
Override the primary BRANCH or CALL with a suitable RETURN operation.Pcode mapping: BRANCH <addr> -> (complex mapping) tmp = COPY &<addr> RETURN tmp BRANCHIND -> RETURN CBRANCH <addr>,<cond> -> (complex mapping) tmp = BOOL_NEGATE <cond> CBRANCH <label>,tmp tmp2 = COPY &<addr> RETURN tmp2 <label> CALL <addr> -> (complex mapping) tmp = COPY &<addr> RETURN tmp CALLIND -> RETURN
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
getFlowOverride
Return FlowOrdinal with the specified ordinal value. NONE will be returned for an unknown value.- Parameters:
ordinal
-- Returns:
- FlowOrdinal
-
getModifiedFlowType
Get modified FlowType resulting from the application of the specified flowOverride- Parameters:
originalFlowType
-flowOverride
-- Returns:
- modified flow type
-