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 java.lang.Object implements ProgramContext, DefaultProgramContext
-
-
Field Summary
Fields Modifier and Type Field Description protected RegisterbaseContextRegisterprotected RegisterValuedefaultDisassemblyContextprotected Languagelanguage
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractProgramContext(Language language)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RegistergetBaseContextRegister()Returns the base context register.java.util.List<Register>getContextRegisters()Gets the registers for this context that are used for processor context states.RegisterValuegetDefaultDisassemblyContext()RegisterValuegetFlowValue(RegisterValue value)Modify register value to eliminate non-flowing bitsLanguagegetLanguage()Get underlying language associated with this context and its registersRegisterValuegetNonFlowValue(RegisterValue value)Modify register value to only include non-flowing bitsRegistergetRegister(java.lang.String name)Get a Register object given the name of a registerjava.util.List<java.lang.String>getRegisterNames()Get an alphabetical sorted unmodifiable list of original register names (including context registers).java.util.List<Register>getRegisters()Get all the register descriptions defined for this program context.booleanhasNonFlowingContext()protected voidinit(Language lang)Initialize context for the specified languagevoidsetDefaultDisassemblyContext(RegisterValue value)Set the initial disassembly context to be used when initiating disassmbly-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ghidra.program.model.listing.DefaultProgramContext
getDefaultValue, setDefaultValue
-
Methods inherited from interface ghidra.program.model.listing.ProgramContext
getDefaultRegisterValueAddressRanges, getDefaultRegisterValueAddressRanges, getDefaultValue, getDisassemblyContext, getNonDefaultValue, getRegistersWithValues, getRegisterValue, getRegisterValueAddressRanges, getRegisterValueAddressRanges, getRegisterValueRangeContaining, getValue, hasValueOverRange, remove, setRegisterValue, setValue
-
-
-
-
Field Detail
-
language
protected Language language
-
baseContextRegister
protected Register baseContextRegister
-
defaultDisassemblyContext
protected RegisterValue defaultDisassemblyContext
-
-
Constructor Detail
-
AbstractProgramContext
protected AbstractProgramContext(Language language)
-
-
Method Detail
-
getLanguage
public Language 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
public final RegisterValue getFlowValue(RegisterValue value)
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
public final RegisterValue getNonFlowValue(RegisterValue value)
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
protected void init(Language lang)
Initialize context for the specified language- Parameters:
lang- processor language for which this context applies
-
getContextRegisters
public final java.util.List<Register> 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
public final Register getRegister(java.lang.String name)
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
public final java.util.List<java.lang.String> 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
public final java.util.List<Register> 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
public final Register getBaseContextRegister()
Description copied from interface:ProgramContextReturns the base context register.- Specified by:
getBaseContextRegisterin interfaceProgramContext- Returns:
- the base context register.
-
getDefaultDisassemblyContext
public final RegisterValue getDefaultDisassemblyContext()
- Specified by:
getDefaultDisassemblyContextin interfaceProgramContext- Returns:
- Get the current default disassembly context to be used when initiating disassmbly
-
setDefaultDisassemblyContext
public final void setDefaultDisassemblyContext(RegisterValue value)
Description copied from interface:ProgramContextSet the initial disassembly context to be used when initiating disassmbly- Specified by:
setDefaultDisassemblyContextin interfaceProgramContext- Parameters:
value- context register value
-
-