Package ghidra.program.model.lang
Class ProcessorContextImpl
- java.lang.Object
-
- ghidra.program.model.lang.ProcessorContextImpl
-
- All Implemented Interfaces:
ProcessorContext
,ProcessorContextView
public final class ProcessorContextImpl extends java.lang.Object implements ProcessorContext
An implementation of processor context which contains the state of all processor registers.
Note that the ContextChangeException will never be thrown by this implementation of Processor
-
-
Constructor Summary
Constructors Constructor Description ProcessorContextImpl(ProcessorContext context)
ProcessorContextImpl(Register[] registers)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearAll()
void
clearRegister(Register register)
Clears the register within this context.Register
getBaseContextRegister()
Register
getRegister(java.lang.String name)
Get a Register given the name of a registerRegister[]
getRegisters()
Returns all the Registers for the processorRegisterValue
getRegisterValue(Register register)
Get the RegisterValue for the given register.java.math.BigInteger
getValue(Register register, boolean signed)
Get the contents of a processor register as a BigInteger objectboolean
hasValue(Register register)
Returns true if a value is defined for the given register.void
setRegisterValue(RegisterValue value)
Sets the specified register value within this context.void
setValue(Register register, java.math.BigInteger value)
Sets the value for a Register.
-
-
-
Constructor Detail
-
ProcessorContextImpl
public ProcessorContextImpl(ProcessorContext context)
-
ProcessorContextImpl
public ProcessorContextImpl(Register[] registers)
-
-
Method Detail
-
getBaseContextRegister
public Register getBaseContextRegister()
- Specified by:
getBaseContextRegister
in interfaceProcessorContextView
- Returns:
- the base processor context register or null if one has not been defined
-
getRegister
public Register getRegister(java.lang.String name)
Description copied from interface:ProcessorContextView
Get a Register given the name of a register- Specified by:
getRegister
in interfaceProcessorContextView
- Parameters:
name
- the name of the register.- Returns:
- The register with the given name.
-
getRegisters
public Register[] getRegisters()
Description copied from interface:ProcessorContextView
Returns all the Registers for the processor- Specified by:
getRegisters
in interfaceProcessorContextView
- Returns:
- all the Registers for the processor
-
getRegisterValue
public RegisterValue getRegisterValue(Register register)
Description copied from interface:ProcessorContextView
Get the RegisterValue for the given register.- Specified by:
getRegisterValue
in interfaceProcessorContextView
- Parameters:
register
- register to get the value for- Returns:
- RegisterValue object containing the value of the register if a value exists, otherwise null.
-
getValue
public java.math.BigInteger getValue(Register register, boolean signed)
Description copied from interface:ProcessorContextView
Get the contents of a processor register as a BigInteger object- Specified by:
getValue
in interfaceProcessorContextView
- Parameters:
register
- register to get the value for- Returns:
- a BigInteger object containing the value of the register if a value exists, otherwise null.
-
hasValue
public boolean hasValue(Register register)
Description copied from interface:ProcessorContextView
Returns true if a value is defined for the given register.- Specified by:
hasValue
in interfaceProcessorContextView
- Parameters:
register
- the register to check for a value.- Returns:
- true if the given register has a value.
-
setValue
public void setValue(Register register, java.math.BigInteger value)
Description copied from interface:ProcessorContext
Sets the value for a Register.- Specified by:
setValue
in interfaceProcessorContext
- Parameters:
register
- the register to have its value setvalue
- the value for the register (null is not permitted).
-
setRegisterValue
public void setRegisterValue(RegisterValue value)
Description copied from interface:ProcessorContext
Sets the specified register value within this context.- Specified by:
setRegisterValue
in interfaceProcessorContext
- Parameters:
value
- register value
-
clearRegister
public void clearRegister(Register register)
Description copied from interface:ProcessorContext
Clears the register within this context.- Specified by:
clearRegister
in interfaceProcessorContext
- Parameters:
register
- register to be cleared.
-
clearAll
public void clearAll()
-
-