Interface IEBranchDetails

All Known Implementing Classes:
EBranchDetails

@Ser public interface IEBranchDetails
Describe the side effects of a raw PC assignment. Branch-details are used as a placeholder until a IECall resolution is successful. They are also used for non "call-to-sub" PC-assignments, to specify additional targets, e.g., potential targets of an indirect intra-procedural jump.
  • Method Details

    • getDef

      List<IEVar> getDef()
      Retrieve the list of defines.
      Returns:
      a read-only list
    • getUse

      List<IEVar> getUse()
      Retrieve the list of uses.
      Returns:
      a read-only list
    • getSpoiled

      List<IEVar> getSpoiled()
      Retrieve the list of spoiled variables.
      Returns:
      a read-only list
    • getDynamicTargetCandidates

      List<IBranchTarget> getDynamicTargetCandidates()
      Retrieve the list of possible branch targets (may be N/A for the owner PC-assign).
      Returns:
      a read-only list
    • addCandidate

      boolean addCandidate(IBranchTarget candidate)
      Parameters:
      candidate -
      Returns:
      true if the object was modified
    • addCandidate

      boolean addCandidate(int index, IBranchTarget candidate)
      Parameters:
      index -
      candidate -
      Returns:
      true if the object was modified
    • addCandidates

      boolean addCandidates(List<? extends IBranchTarget> candidates)
      Parameters:
      candidates -
      Returns:
      true if the object was modified
    • setIncludeUnknownTarget

      boolean setIncludeUnknownTarget(boolean includeUnknownTarget)
      Parameters:
      includeUnknownTarget -
      Returns:
      true if the object was modified
    • isIncludeUnknownTarget

      boolean isIncludeUnknownTarget()
      Returns:
    • getNativePrototypeHint

      IPrototypeItem getNativePrototypeHint()
      Returns:
      optional hint (if not null, the returned prototype should not be directly modified)
    • setNativePrototypeHint

      boolean setNativePrototypeHint(IPrototypeItem nativePrototypeHint)
      Parameters:
      nativePrototypeHint -
      Returns:
      true if the object was modified
    • getStackPointerDeltaDeterminer

      SPDDeterminer getStackPointerDeltaDeterminer()
    • getStackPointerDelta

      SPDC getStackPointerDelta()
      Convenience method.
      Returns:
    • getStackPointerDeltaValue

      int getStackPointerDeltaValue()
      Convenience method.
      Returns:
    • getPreInvocationDetails

      PreRoutineInvocationDetails getPreInvocationDetails()
      Get the pre-invocation details object, if one was set.
      Returns:
      may be null
    • setPreInvocationDetails

      boolean setPreInvocationDetails(PreRoutineInvocationDetails preInvocationDetails)
      Set the optional pre-invocation details object.
      Parameters:
      preInvocationDetails -
      Returns:
      true if the object was modified