Interface JitVal

All Known Subinterfaces:
JitMemoryVar, JitOutVar, JitVar, JitVarnodeVar
All Known Implementing Classes:
AbstractJitOutVar, AbstractJitVal, AbstractJitVar, AbstractJitVarnodeVar, JitConstVal, JitDirectMemoryVar, JitIndirectMemoryVar, JitInputVar, JitLocalOutVar, JitMemoryOutVar, JitMissingVar

public interface JitVal
A p-code value use-def node.

For a table of value/variable node classes and generators, see ValGen.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static final record 
    The use of a value node by an operator node.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addUse(JitOp op, int position)
    Add a use.
    constant(int size, BigInteger value)
    Create a constant value.
    void
    removeUse(JitOp op, int position)
    Remove a use.
    int
    The size in bytes.
    The list of uses.
  • Method Details

    • constant

      static JitConstVal constant(int size, BigInteger value)
      Create a constant value.
      Parameters:
      size - the size in bytes
      value - the value
      Returns:
      the value node
    • size

      int size()
      The size in bytes.
      Returns:
      the size
    • uses

      The list of uses.
      Returns:
      the uses
    • addUse

      void addUse(JitOp op, int position)
      Add a use.

      In most cases, uses should be final, once this value node has been entered into the use-def graph. An exception deals with phi nodes, as this analysis occurs after each intra-block portion of the graph has been constructed. During inter-block analysis, additional uses will get recorded. Even further uses may be recorded uding op-use analysis, since it may generate more phi nodes.

      Parameters:
      op - the operator node using this one
      position - the position of this value in the operator's input operands
    • removeUse

      void removeUse(JitOp op, int position)
      Remove a use.
      Parameters:
      op - as in addUse(JitOp, int)
      position - as in addUse(JitOp, int)
      See Also: