Class JitMissingVar

All Implemented Interfaces:
JitVal, JitVar, JitVarnodeVar

public class JitMissingVar extends AbstractJitVarnodeVar
A p-code variable whose definition could not be determined.

This is only applicable to register and unique variables. It indicates the JitDataFlowState had not recorded a definition for the variable's varnode (or some portion of it) prior in the same block. These should never enter the use-def graph. Instead, each should be replaced by a JitOutVar defined by a phi node. The phi node's options are determined later during inter-block analysis.

See Also:
  • Constructor Details

    • JitMissingVar

      public JitMissingVar(Varnode varnode)
      Construct a variable.
      Parameters:
      varnode - the varnode
  • Method Details

    • generatePhi

      public JitPhiOp generatePhi(JitDataFlowModel dfm, JitControlFlowModel.JitBlock block)
      Create the phi node for this missing variable. The resulting node and its output are added to the use-def graph. Note that this missing variable never enters the use-def graph. The phi's output takes the place of this variable.
      Parameters:
      dfm - the data flow model
      block - the block containing the op that accessed the varnode
      Returns:
      the generated phi op
      See Also: