Package ghidra.pcode.exec
Interface SleighPcodeUseropDefinition<T>
- Type Parameters:
T- no type in particular, except to match any executor
- All Superinterfaces:
PcodeUseropLibrary.PcodeUseropDefinition<T>
- All Known Implementing Classes:
AbstractSleighPcodeUseropDefinition,FixedSleighPcodeUseropDefinition,OverloadedSleighPcodeUseropDefinition
A p-code userop defined using Sleigh source
-
Nested Class Summary
Nested ClassesChangeModifier and TypeInterfaceDescriptionstatic interfaceA function body, as it depends on the given argumentsstatic interfaceStage one of the builder, where any operation is allowedstatic interfaceStage two of the builder, where parameters can no longer be addedstatic classA factory for buildingSleighPcodeUseropDefinitions.static final recordOne definition for a userop for a given signature (parameters, including output) -
Field Summary
Fields -
Method Summary
ChangeModifier and TypeMethodDescriptiondefault StringGet the Sleigh source that defines this useropGet the Sleigh source that defines this useropprogramFor(List<Varnode> args, PcodeUseropLibrary<?> library) Get the p-code program implementing this userop for the given arguments and library.REMOVEDStringgetName() RemovedREMOVEDintRemovedREMOVEDList<String>RemovedREMOVEDStringgetBody() RemovedREMOVEDbooleanRemovedREMOVEDbooleanRemovedREMOVEDbooleanRemovedREMOVEDbooleanRemovedREMOVEDClass<?>RemovedREMOVEDMethodRemovedREMOVEDPcodeUseropLibrary<T>RemovedMethods inherited from interface ghidra.pcode.exec.PcodeUseropLibrary.PcodeUseropDefinition
canInlinePcode, execute, execute, getDefiningLibrary, getInputCount, getJavaMethod, getName, getOutputType, hasSideEffects, isFunctional, modifiesContext
-
Field Details
-
OUT_SYMBOL_NAME
The name of the output symbol- See Also:
-
EMPTY_ARGS NEW
-
-
Method Details
-
getBody
Get the Sleigh source that defines this useropThe body may or may not actually depend on the arguments. Ideally, it does not, but sometimes the body may vary depending on the sizes of the arguments. In cases where it is known the body is fixed, the args parameter may be null or an empty list. When the arguments are required, index 0 must be the output varnode. If the userop has no output, index 0 may be null.
- Parameters:
args- the argument varnodes- Returns:
- the body
-
getBody
Get the Sleigh source that defines this userop- Parameters:
args- the argument varnodes- Returns:
- the body
- See Also:
-
programFor
Get the p-code program implementing this userop for the given arguments and library.This will compile and cache a program for each new combination of arguments seen.
- Parameters:
args- the operands, output at index 0, and inputs followinglibrary- the complete userop library- Returns:
- the p-code program to be fed to the same executor as invoked this userop, but in a new frame
-