Class SsaConverter

java.lang.Object
com.android.dx.ssa.SsaConverter

public class SsaConverter extends Object
Converts ROP methods to SSA Methods
  • Field Details

  • Constructor Details

    • SsaConverter

      public SsaConverter()
  • Method Details

    • convertToSsaMethod

      public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic)
      Returns an SSA representation, edge-split and with phi functions placed.
      Parameters:
      rmeth - input
      paramWidth - the total width, in register-units, of the method's parameters
      isStatic - true if this method has no this pointer argument
      Returns:
      output in SSA form
    • updateSsaMethod

      public static void updateSsaMethod(SsaMethod ssaMeth, int threshold)
      Updates an SSA representation, placing phi functions and renaming all registers above a certain threshold number.
      Parameters:
      ssaMeth - input
      threshold - registers below this number are unchanged
    • testEdgeSplit

      public static SsaMethod testEdgeSplit(RopMethod rmeth, int paramWidth, boolean isStatic)
      Returns an SSA represention with only the edge-splitter run.
      Parameters:
      rmeth - method to process
      paramWidth - width of all arguments in the method
      isStatic - true if this method has no this pointer argument
      Returns:
      an SSA represention with only the edge-splitter run
    • testPhiPlacement

      public static SsaMethod testPhiPlacement(RopMethod rmeth, int paramWidth, boolean isStatic)
      Returns an SSA represention with only the steps through the phi placement run.
      Parameters:
      rmeth - method to process
      paramWidth - width of all arguments in the method
      isStatic - true if this method has no this pointer argument
      Returns:
      an SSA represention with only the edge-splitter run