Package ghidra.pcode.emu.jit.op

# Record Class JitCallOtherDefOp

java.lang.Object
java.lang.Record
ghidra.pcode.emu.jit.op.JitCallOtherDefOp

Record Components:
  `op` - the p-code op
  `out` - the use-def variable node for the output
  `type` - the behavior of the output
  `userop` - the userop definition
  `args` - the list of use-def values nodes given as arguments
  `inputTypes` - the type behavior for each parameter
  `dfState` - the captured data flow state at the call site

All Implemented Interfaces:
  `JitCallOtherOpIf`, `JitDefOp`, `JitOp`

public record JitCallOtherDefOp(PcodeOp op, JitOutVar out, JitTypeBehavior type, PcodeUseropLibrary.PcodeUseropDefinition<Object> userop, List<JitVal> args, List<JitTypeBehavior> inputTypes, JitDataFlowState.MiniDFState dfState) extends Record implements JitCallOtherOpIf, JitDefOp
The use-def node for a `PcodeOp.CALLOTHER` with an output operand.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JitCallOtherDefOp(PcodeOp op, JitOutVar out, JitTypeBehavior type, PcodeUseropLibrary.PcodeUseropDefinition<Object> userop, List<JitVal> args, List<JitTypeBehavior> inputTypes, JitDataFlowState.MiniDFState dfState)`
  Creates an instance of a `JitCallOtherDefOp` record class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<JitVal>`
  `args()`
  Returns the value of the `args` record component.
  `boolean`
  `canBeRemoved()`
  Indicates the operation can be removed if its output is never used.
  `JitDataFlowState.MiniDFState`
  `dfState()`
  Returns the value of the `dfState` record component.
  `final boolean`
  `equals(Object o)`
  Indicates whether some other object is "equal to" this one.
  `final int`
  `hashCode()`
  Returns a hash code value for this object.
  `List<JitTypeBehavior>`
  `inputTypes()`
  Returns the value of the `inputTypes` record component.
  `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.
  `PcodeOp`
  `op()`
  Returns the value of the `op` record component.
  `JitOutVar`
  `out()`
  Returns the value of the `out` record component.
  `final String`
  `toString()`
  Returns a string representation of this record class.
  `JitTypeBehavior`
  `type()`
  Returns the value of the `type` record component.
  `void`
  `unlink()`
  Remove this op from the `JitVal.uses()` of each input operand, and (if applicable) unset the `JitOutVar.definition()` of the output operand.
  `PcodeUseropLibrary.PcodeUseropDefinition<Object>`
  `userop()`
  Returns the value of the `userop` record component.

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

  `inputs, typeFor`

- ## Constructor Details

  - ### JitCallOtherDefOp

    public JitCallOtherDefOp(PcodeOp op, JitOutVar out, JitTypeBehavior type, PcodeUseropLibrary.PcodeUseropDefinition<Object> userop, List<JitVal> args, List<JitTypeBehavior> inputTypes, JitDataFlowState.MiniDFState dfState)
    Creates an instance of a `JitCallOtherDefOp` record class.
    Parameters:
      `op` - the value for the `op` record component
      `out` - the value for the `out` record component
      `type` - the value for the `type` record component
      `userop` - the value for the `userop` record component
      `args` - the value for the `args` record component
      `inputTypes` - the value for the `inputTypes` record component
      `dfState` - the value for the `dfState` record component

- ## Method Details

  - ### canBeRemoved

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

  - ### link

    public 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 `JitCallOtherOpIf`
    Specified by:
      `link` in interface `JitDefOp`
    Specified by:
      `link` in interface `JitOp`

  - ### unlink

    public 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 `JitCallOtherOpIf`
    Specified by:
      `unlink` in interface `JitDefOp`
    Specified by:
      `unlink` in interface `JitOp`

  - ### toString

    public final String toString()
    Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
    Specified by:
      `toString` in class `Record`
    Returns:
      a string representation of this object

  - ### hashCode

    public final int hashCode()
    Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
    Specified by:
      `hashCode` in class `Record`
    Returns:
      a hash code value for this object

  - ### equals

    public final boolean equals(Object o)
    Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with `Objects::equals(Object,Object)`.
    Specified by:
      `equals` in class `Record`
    Parameters:
      `o` - the object with which to compare
    Returns:
      `true` if this object is the same as the `o` argument; `false` otherwise.

  - ### op

    public PcodeOp op()
    Returns the value of the `op` record component.
    Specified by:
      `op` in interface `JitOp`
    Returns:
      the value of the `op` record component

  - ### out

    public JitOutVar out()
    Returns the value of the `out` record component.
    Specified by:
      `out` in interface `JitDefOp`
    Returns:
      the value of the `out` record component

  - ### type

    public JitTypeBehavior type()
    Returns the value of the `type` record component.
    Specified by:
      `type` in interface `JitDefOp`
    Returns:
      the value of the `type` record component

  - ### userop

    public PcodeUseropLibrary.PcodeUseropDefinition<Object> userop()
    Returns the value of the `userop` record component.
    Specified by:
      `userop` in interface `JitCallOtherOpIf`
    Returns:
      the value of the `userop` record component

  - ### args

    public List<JitVal> args()
    Returns the value of the `args` record component.
    Specified by:
      `args` in interface `JitCallOtherOpIf`
    Returns:
      the value of the `args` record component

  - ### inputTypes

    public List<JitTypeBehavior> inputTypes()
    Returns the value of the `inputTypes` record component.
    Specified by:
      `inputTypes` in interface `JitCallOtherOpIf`
    Returns:
      the value of the `inputTypes` record component

  - ### dfState

    public JitDataFlowState.MiniDFState dfState()
    Returns the value of the `dfState` record component.
    Specified by:
      `dfState` in interface `JitCallOtherOpIf`
    Returns:
      the value of the `dfState` record component