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
 
 - 
 
 -