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
    @NonNull Map<org.objectweb.asm.tree.AbstractInsnNode,sootup.java.bytecode.frontend.conversion.OperandMerging>
     
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    @NonNull sootup.java.bytecode.frontend.conversion.OperandMerging
    getOrCreateMerging(@NonNull org.objectweb.asm.tree.AbstractInsnNode insn)
     
    @NonNull List<sootup.java.bytecode.frontend.conversion.Operand>
     
    @NonNull sootup.java.bytecode.frontend.conversion.Operand
     
    @NonNull sootup.java.bytecode.frontend.conversion.Operand
    pop()
     
    @NonNull sootup.java.bytecode.frontend.conversion.Operand
    pop(@NonNull Type t)
     
    @NonNull sootup.java.bytecode.frontend.conversion.Operand
     
    @NonNull sootup.java.bytecode.frontend.conversion.Operand
     
    @NonNull sootup.java.bytecode.frontend.conversion.Operand
     
    void
    push(@NonNull Type t, @NonNull sootup.java.bytecode.frontend.conversion.Operand opr)
     
    void
    push(@NonNull sootup.java.bytecode.frontend.conversion.Operand opr)
     
    void
    pushDual(@NonNull sootup.java.bytecode.frontend.conversion.Operand opr)
     
    void
    setOperandStack(@NonNull 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

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

    • OperandStack

      public OperandStack(@NonNull AsmMethodSource methodSource, int nrInsn)
  • Method Details

    • getOrCreateMerging

      public @NonNull 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

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

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

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

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

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

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

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

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

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