Class FoldRevalidator.RevalidateExecutor
- Enclosing class:
FoldRevalidator
-
Field Summary
Fields inherited from class FoldingExecutor
stateFields inherited from class PcodeExecutor
arithmetic, language, OPIDX_BRANCH_TARGET, OPIDX_CALLOTHER_OP_NUMBER, OPIDX_CBRANCH_PRED, OPIDX_DEFEF_SPACE, OPIDX_DEREF_OFFSET, OPIDX_STORE_VALUE, pc, pcSize, reason -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedRevalidateExecutor(DecoderForOnePassage passage, PcodeOp next) -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecuteBranch(PcodeOp op, PcodeFrame frame) Perform the actual logic of a branch p-code opprotected voiddoExecuteIndirectBranch(PcodeOp op, PcodeFrame frame) Perform the actual logic of an indirect branch p-code opvoidexecuteBranch(PcodeOp op, PcodeFrame frame) Execute a branchvoidexecuteCall(PcodeOp op, PcodeFrame frame, PcodeUseropLibrary<MaskedBytes> library) Execute a callvoidexecuteCallother(PcodeOp op, PcodeFrame frame, PcodeUseropLibrary<MaskedBytes> library) Execute a userop callvoidexecuteConditionalBranch(PcodeOp op, PcodeFrame frame) Execute a conditional branchprotected voidonMissingUseropDef(PcodeOp op, PcodeFrame frame, String opName, PcodeUseropLibrary<MaskedBytes> library) Extension point: Behavior when a userop definition was not found in the libraryvoidstepOp(PcodeOp op, PcodeFrame frame, PcodeUseropLibrary<MaskedBytes> library) Step one p-code opMethods inherited from class FoldingExecutor
afterLoad, afterStore, doFoldIndirectBranch, execute, executeBinaryOp, executeIndirectBranch, executeIndirectCall, executeLoad, executeReturn, executeStore, executeUnaryOp, getState, getUseropMethods inherited from class PcodeExecutor
badOp, beforeLoad, beforeStore, begin, begin, branchInternal, branchToAddress, branchToOffset, branchToOffset, checkInjectedTarget, execute, execute, executeSleigh, finish, getArithmetic, getBranchTarget, getCallotherOpNumber, getConditionalBranchPredicate, getIndirectBranchTarget, getIntConst, getLanguage, getLoadStoreOffset, getLoadStoreSpace, getReason, getStoreValue, getUseropName, skip, step
-
Constructor Details
-
RevalidateExecutor
-
-
Method Details
-
stepOp
Description copied from class:PcodeExecutorStep one p-code op- Overrides:
stepOpin classPcodeExecutor<MaskedBytes>- Parameters:
op- the opframe- the current framelibrary- the library, invoked in case ofPcodeOp.CALLOTHER
-
doExecuteBranch
Description copied from class:PcodeExecutorPerform the actual logic of a branch p-code opThis is a separate method, so that overriding
PcodeExecutor.executeBranch(PcodeOp, PcodeFrame)does not implicitly modifyPcodeExecutor.executeConditionalBranch(PcodeOp, PcodeFrame).- Overrides:
doExecuteBranchin classPcodeExecutor<MaskedBytes>- Parameters:
op- the opframe- the frame
-
executeBranch
Description copied from class:PcodeExecutorExecute a branchThis merely defers to
PcodeExecutor.doExecuteBranch(PcodeOp, PcodeFrame). To instrument the operation, override this. To modify or instrument branching in general, overridePcodeExecutor.doExecuteBranch(PcodeOp, PcodeFrame),PcodeExecutor.branchToOffset(PcodeOp, Object, PcodeFrame), and/orPcodeExecutor.branchToAddress(PcodeOp, Address).- Overrides:
executeBranchin classPcodeExecutor<MaskedBytes>- Parameters:
op- the opframe- the frame
-
executeCall
Description copied from class:PcodeExecutorExecute a call- Overrides:
executeCallin classPcodeExecutor<MaskedBytes>- Parameters:
op- the opframe- the framelibrary- the userop library
-
executeConditionalBranch
Description copied from class:PcodeExecutorExecute a conditional branch- Overrides:
executeConditionalBranchin classFoldingExecutor- Parameters:
op- the opframe- the frame
-
doExecuteIndirectBranch
Description copied from class:PcodeExecutorPerform the actual logic of an indirect branch p-code opThis is a separate method, so that overriding
PcodeExecutor.executeIndirectBranch(PcodeOp, PcodeFrame)does not implicitly modifyPcodeExecutor.executeIndirectCall(PcodeOp, PcodeFrame)andPcodeExecutor.executeReturn(PcodeOp, PcodeFrame).- Overrides:
doExecuteIndirectBranchin classPcodeExecutor<MaskedBytes>- Parameters:
op- the opframe- the frame
-
executeCallother
Description copied from class:PcodeExecutorExecute a userop call- Overrides:
executeCallotherin classFoldingExecutor- Parameters:
op- the opframe- the framelibrary- the library of userops
-
onMissingUseropDef
protected void onMissingUseropDef(PcodeOp op, PcodeFrame frame, String opName, PcodeUseropLibrary<MaskedBytes> library) Description copied from class:PcodeExecutorExtension point: Behavior when a userop definition was not found in the libraryThe default behavior is to throw a
SleighLinkException.- Overrides:
onMissingUseropDefin classPcodeExecutor<MaskedBytes>- Parameters:
op- the opframe- the frameopName- the name of the p-code useroplibrary- the library
-