Package ghidra.pcode.emulate
Class Emulate
- java.lang.Object
-
- ghidra.pcode.emulate.Emulate
-
public class Emulate extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description Emulate(SleighLanguage lang, MemoryState s, BreakTable b)
-
Method Summary
-
-
-
Constructor Detail
-
Emulate
public Emulate(SleighLanguage lang, MemoryState s, BreakTable b)
-
-
Method Detail
-
dispose
public void dispose()
-
getLanguage
public Language getLanguage()
-
isInstructionStart
public boolean isInstructionStart()
-
getExecutionState
public EmulateExecutionState getExecutionState()
-
getExecuteAddress
public Address getExecuteAddress()
-
getLastExecuteAddress
public Address getLastExecuteAddress()
-
getNewDisassemblerContext
public EmulateDisassemblerContext getNewDisassemblerContext()
-
getContextRegisterValue
public RegisterValue getContextRegisterValue()
Returns the current context register value. The context value returned reflects its state when the previously executed instruction was parsed/executed. The context value returned will feed into the next instruction to be parsed with its non-flowing bits cleared and any future context state merged in. If no instruction has been executed, the explicitly set context will be returned. A null value is returned if no context register is defined by the language or initial context has not been set.
-
setContextRegisterValue
public void setContextRegisterValue(RegisterValue regValue)
Sets the context register value at the current execute address. The Emulator should not be running when this method is invoked. Only flowing context bits should be set, as non-flowing bits will be cleared prior to parsing on instruction. In addition, any future context state set by the pcode emitter will take precedence over context set using this method. This method is primarily intended to be used to establish the initial context state.- Parameters:
regValue
-
-
fallthruOp
public void fallthruOp()
-
executeConditionalBranch
public void executeConditionalBranch(PcodeOpRaw op)
-
executeBranch
public void executeBranch(PcodeOpRaw op)
-
executeCallother
public void executeCallother(PcodeOpRaw op) throws UnimplementedCallOtherException
- Throws:
UnimplementedCallOtherException
-
setExecuteAddress
public void setExecuteAddress(Address addr)
-
executeInstruction
public void executeInstruction(boolean stopAtBreakpoint, TaskMonitor monitor) throws CancelledException, LowlevelError, InstructionDecodeException
-
getMemoryState
public MemoryState getMemoryState()
-
executeLoad
public void executeLoad(PcodeOpRaw op)
-
executeStore
public void executeStore(PcodeOpRaw op)
-
executeBranchind
public void executeBranchind(PcodeOpRaw op)
-
executeCall
public void executeCall(PcodeOpRaw op)
-
executeCallind
public void executeCallind(PcodeOpRaw op)
-
executeMultiequal
public void executeMultiequal(PcodeOpRaw op)
-
executeIndirect
public void executeIndirect(PcodeOpRaw op)
-
-