Package ghidra.pcode.emu.jit.op
Interface JitOp
- All Known Subinterfaces:
JitBinOp
,JitBoolBinOp
,JitBoolUnOp
,JitCallOtherOpIf
,JitDefOp
,JitFloatBinOp
,JitFloatTestOp
,JitFloatUnOp
,JitIntBinOp
,JitIntTestOp
,JitIntUnOp
,JitSyntheticOp
,JitUnOp
- All Known Implementing Classes:
JitBoolAndOp
,JitBoolNegateOp
,JitBoolOrOp
,JitBoolXorOp
,JitBranchIndOp
,JitBranchOp
,JitCallOtherDefOp
,JitCallOtherMissingOp
,JitCallOtherOp
,JitCatenateOp
,JitCBranchOp
,JitCopyOp
,JitFloatAbsOp
,JitFloatAddOp
,JitFloatCeilOp
,JitFloatDivOp
,JitFloatEqualOp
,JitFloatFloat2FloatOp
,JitFloatFloorOp
,JitFloatInt2FloatOp
,JitFloatLessEqualOp
,JitFloatLessOp
,JitFloatMultOp
,JitFloatNaNOp
,JitFloatNegOp
,JitFloatNotEqualOp
,JitFloatRoundOp
,JitFloatSqrtOp
,JitFloatSubOp
,JitFloatTruncOp
,JitInt2CompOp
,JitIntAddOp
,JitIntAndOp
,JitIntCarryOp
,JitIntDivOp
,JitIntEqualOp
,JitIntLeftOp
,JitIntLessEqualOp
,JitIntLessOp
,JitIntMultOp
,JitIntNegateOp
,JitIntNotEqualOp
,JitIntOrOp
,JitIntRemOp
,JitIntRightOp
,JitIntSBorrowOp
,JitIntSCarryOp
,JitIntSDivOp
,JitIntSExtOp
,JitIntSLessEqualOp
,JitIntSLessOp
,JitIntSRemOp
,JitIntSRightOp
,JitIntSubOp
,JitIntXorOp
,JitIntZExtOp
,JitLoadOp
,JitLzCountOp
,JitNopOp
,JitPhiOp
,JitPopCountOp
,JitStoreOp
,JitSubPieceOp
,JitSynthSubPieceOp
,JitUnimplementedOp
public interface JitOp
A p-code operator use-def node.
For a table of p-code ops, use-def nodes, and code generators, see OpGen
.
-
Method Summary
Modifier and TypeMethodDescriptionstatic JitDefOp
Create a use-def node for a binary p-coe opboolean
Indicates the operation can be removed if its output is never used.inputs()
The input operand use-def nodes in some defined ordervoid
link()
Add this op to theJitVal.uses()
of each input operand, and (if applicable) set theJitOutVar.definition()
of the output operand to this op.op()
The p-code op represented by this use-def nodestatic JitOp
Create a use-def node for a nop or unimplemented op.typeFor
(int position) Get the required type behavior for the input at the given position ininputs()
void
unlink()
Remove this op from theJitVal.uses()
of each input operand, and (if applicable) unset theJitOutVar.definition()
of the output operand.static JitUnOp
Create a use-def node for a unary p-coe op
-
Method Details
-
stubOp
Create a use-def node for a nop or unimplemented op.- Parameters:
op
- the p-code op- Returns:
- the use-def node
-
unOp
Create a use-def node for a unary p-coe op- Parameters:
op
- the p-code opout
- the (pre-made) output operand use-def nodeu
- the input operand use-def node- Returns:
- the use-def node
-
binOp
Create a use-def node for a binary p-coe op- Parameters:
op
- the p-code opout
- the (pre-made) output operand use-def nodel
- the left input operand use-def noder
- the right input operand use-def node- Returns:
- the use-def node
-
op
PcodeOp op()The p-code op represented by this use-def node- Returns:
- the p-code op
-
canBeRemoved
boolean canBeRemoved()Indicates the operation can be removed if its output is never used.- Returns:
- true if removable
-
inputs
The input operand use-def nodes in some defined order- Returns:
- the list of inputs
-
typeFor
Get the required type behavior for the input at the given position ininputs()
- Parameters:
position
- the input position- Returns:
- the behavior
-
link
void link()Add this op to theJitVal.uses()
of each input operand, and (if applicable) set theJitOutVar.definition()
of the output operand to this op. -
unlink
void unlink()Remove this op from theJitVal.uses()
of each input operand, and (if applicable) unset theJitOutVar.definition()
of the output operand.
-