Package ghidra.pcode.emu.jit.op

# Interface JitDefOp

All Superinterfaces:
  `JitOp`

All Known Subinterfaces:
  `JitBinOp`, `JitBoolBinOp`, `JitBoolUnOp`, `JitFloatBinOp`, `JitFloatTestOp`, `JitFloatUnOp`, `JitIntBinOp`, `JitIntTestOp`, `JitIntUnOp`, `JitUnOp`

All Known Implementing Classes:
  `JitBoolAndOp`, `JitBoolNegateOp`, `JitBoolOrOp`, `JitBoolXorOp`, `JitCallOtherDefOp`, `JitCatenateOp`, `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`, `JitPhiOp`, `JitPopCountOp`, `JitSubPieceOp`, `JitSynthSubPieceOp`

public interface JitDefOp extends JitOp
A p-code operator use-def node with an output

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default boolean`
  `canBeRemoved()`
  Indicates the operation can be removed if its output is never used.
  `default void`
  `link()`
  Add this op to the `JitVal.uses()` of each input operand, and (if applicable) set the `JitOutVar.definition()` of the output operand to this op.
  `JitOutVar`
  `out()`
  The the use-def variable node for the output.
  `JitTypeBehavior`
  `type()`
  The required type behavior for the output
  `default void`
  `unlink()`
  Remove this op from the `JitVal.uses()` of each input operand, and (if applicable) unset the `JitOutVar.definition()` of the output operand.

  ### Methods inherited from interface ghidra.pcode.emu.jit.op.JitOp

  `inputs, op, typeFor`

- ## Method Details

  - ### canBeRemoved

    default boolean canBeRemoved()
    Description copied from interface: `JitOp`
    Indicates the operation can be removed if its output is never used.
    Specified by:
      `canBeRemoved` in interface `JitOp`
    Returns:
      true if removable

  - ### out

    JitOutVar out()
    The the use-def variable node for the output.
    Returns:
      the output

  - ### link

    default void link()
    Description copied from interface: `JitOp`
    Add this op to the `JitVal.uses()` of each input operand, and (if applicable) set the `JitOutVar.definition()` of the output operand to this op.
    Specified by:
      `link` in interface `JitOp`

  - ### unlink

    default void unlink()
    Description copied from interface: `JitOp`
    Remove this op from the `JitVal.uses()` of each input operand, and (if applicable) unset the `JitOutVar.definition()` of the output operand.
    Specified by:
      `unlink` in interface `JitOp`

  - ### type

    JitTypeBehavior type()
    The required type behavior for the output
    Returns:
      the behavior