Package ghidra.program.util
Class AbstractProgramContext
java.lang.Object
ghidra.program.util.AbstractProgramContext
- All Implemented Interfaces:
DefaultProgramContext,ProgramContext
- Direct Known Subclasses:
AbstractStoredProgramContext,Disassembler.DisassemblerProgramContext
public abstract class AbstractProgramContext
extends Object
implements ProgramContext, DefaultProgramContext
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal RegisterReturns the base context register.Gets the registers for this context that are used for processor context states.final RegisterValuefinal RegisterValuegetFlowValue(RegisterValue value) Modify register value to eliminate non-flowing bitsGet underlying language associated with this context and its registersfinal RegisterValuegetNonFlowValue(RegisterValue value) Modify register value to only include non-flowing bitsfinal RegistergetRegister(String name) Get a Register object given the name of a registerGet an alphabetical sorted unmodifiable list of original register names (including context registers).Get all the register descriptions defined for this program context.final booleanprotected voidInitialize context for the specified languagefinal voidSet the initial disassembly context to be used when initiating disassmblyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.program.model.listing.DefaultProgramContext
getDefaultValue, setDefaultValueMethods inherited from interface ghidra.program.model.listing.ProgramContext
getDefaultRegisterValueAddressRanges, getDefaultRegisterValueAddressRanges, getDefaultValue, getDisassemblyContext, getNonDefaultValue, getRegistersWithValues, getRegisterValue, getRegisterValueAddressRanges, getRegisterValueAddressRanges, getRegisterValueRangeContaining, getValue, hasValueOverRange, remove, setRegisterValue, setValue
-
Field Details
-
language
-
baseContextRegister
-
defaultDisassemblyContext
-
-
Constructor Details
-
AbstractProgramContext
-
-
Method Details
-
getLanguage
Get underlying language associated with this context and its registers- Returns:
- language
-
hasNonFlowingContext
public final boolean hasNonFlowingContext()- Specified by:
hasNonFlowingContextin interfaceProgramContext- Returns:
- true if one or more non-flowing context registers fields have been defined within the base processor context register.
-
getFlowValue
Modify register value to eliminate non-flowing bits- Specified by:
getFlowValuein interfaceProgramContext- Parameters:
value- context register value to be modified- Returns:
- value suitable for flowing
-
getNonFlowValue
Modify register value to only include non-flowing bits- Specified by:
getNonFlowValuein interfaceProgramContext- Parameters:
value- context register value to be modified- Returns:
- new value or null if value does not correspond to a context register or non-flowing context fields have not been defined
-
init
Initialize context for the specified language- Parameters:
lang- processor language for which this context applies
-
getContextRegisters
Description copied from interface:ProgramContextGets the registers for this context that are used for processor context states.- Specified by:
getContextRegistersin interfaceProgramContext- Returns:
- all processor context registers
-
getRegister
Description copied from interface:ProgramContextGet a Register object given the name of a register- Specified by:
getRegisterin interfaceProgramContext- Parameters:
name- the name of the register.- Returns:
- The register with the given name or null if no register has that name.
-
getRegisterNames
Description copied from interface:ProgramContextGet an alphabetical sorted unmodifiable list of original register names (including context registers). Names correspond to orignal register name and not aliases which may be defined.- Specified by:
getRegisterNamesin interfaceProgramContext- Returns:
- alphabetical sorted unmodifiable list of original register names.
-
getRegisters
Description copied from interface:ProgramContextGet all the register descriptions defined for this program context.- Specified by:
getRegistersin interfaceProgramContext- Returns:
- unmodifiable list of defined register descriptions
-
getBaseContextRegister
Description copied from interface:ProgramContextReturns the base context register.- Specified by:
getBaseContextRegisterin interfaceProgramContext- Returns:
- the base context register.
-
getDefaultDisassemblyContext
- Specified by:
getDefaultDisassemblyContextin interfaceProgramContext- Returns:
- Get the current default disassembly context to be used when initiating disassmbly
-
setDefaultDisassemblyContext
Description copied from interface:ProgramContextSet the initial disassembly context to be used when initiating disassmbly- Specified by:
setDefaultDisassemblyContextin interfaceProgramContext- Parameters:
value- context register value
-