Class OperandStack

java.lang.Object
sootup.java.bytecode.frontend.conversion.OperandStack

public class OperandStack extends Object
This class resembles the stack which the bytecode fills. It is used to convert to jimple with Locals. (stack-machine -> "register" machine model)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    Map<org.objectweb.asm.tree.AbstractInsnNode,sootup.java.bytecode.frontend.conversion.OperandMerging>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    OperandStack(AsmMethodSource methodSource, int nrInsn)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    sootup.java.bytecode.frontend.conversion.OperandMerging
    getOrCreateMerging(org.objectweb.asm.tree.AbstractInsnNode insn)
     
    List<sootup.java.bytecode.frontend.conversion.Operand>
     
    sootup.java.bytecode.frontend.conversion.Operand
     
    sootup.java.bytecode.frontend.conversion.Operand
    pop()
     
    sootup.java.bytecode.frontend.conversion.Operand
    pop(Type t)
     
    sootup.java.bytecode.frontend.conversion.Operand
     
    sootup.java.bytecode.frontend.conversion.Operand
     
    sootup.java.bytecode.frontend.conversion.Operand
     
    void
    push(Type t, sootup.java.bytecode.frontend.conversion.Operand opr)
     
    void
    push(sootup.java.bytecode.frontend.conversion.Operand opr)
     
    void
    pushDual(sootup.java.bytecode.frontend.conversion.Operand opr)
     
    void
    setOperandStack(List<sootup.java.bytecode.frontend.conversion.Operand> stack)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • mergings

      @Nonnull public Map<org.objectweb.asm.tree.AbstractInsnNode,sootup.java.bytecode.frontend.conversion.OperandMerging> mergings
  • Constructor Details

  • Method Details

    • getOrCreateMerging

      @Nonnull public sootup.java.bytecode.frontend.conversion.OperandMerging getOrCreateMerging(@Nonnull org.objectweb.asm.tree.AbstractInsnNode insn)
    • push

      public void push(@Nonnull sootup.java.bytecode.frontend.conversion.Operand opr)
    • pushDual

      public void pushDual(@Nonnull sootup.java.bytecode.frontend.conversion.Operand opr)
    • peek

      @Nonnull public sootup.java.bytecode.frontend.conversion.Operand peek()
    • push

      public void push(@Nonnull Type t, @Nonnull sootup.java.bytecode.frontend.conversion.Operand opr)
    • pop

      @Nonnull public sootup.java.bytecode.frontend.conversion.Operand pop()
    • popDual

      @Nonnull public sootup.java.bytecode.frontend.conversion.Operand popDual()
    • pop

      @Nonnull public sootup.java.bytecode.frontend.conversion.Operand pop(@Nonnull Type t)
    • popStackConst

      @Nonnull public sootup.java.bytecode.frontend.conversion.Operand popStackConst()
    • popStackConstDual

      @Nonnull public sootup.java.bytecode.frontend.conversion.Operand popStackConstDual()
    • getStack

      @Nonnull public List<sootup.java.bytecode.frontend.conversion.Operand> getStack()
    • setOperandStack

      public void setOperandStack(@Nonnull List<sootup.java.bytecode.frontend.conversion.Operand> stack)