PushFrameInstr.java

  1. package org.jruby.ir.instructions;

  2. import org.jruby.ir.IRVisitor;
  3. import org.jruby.ir.Operation;
  4. import org.jruby.ir.operands.Operand;
  5. import org.jruby.ir.transformations.inlining.CloneInfo;
  6. import org.jruby.ir.transformations.inlining.SimpleCloneInfo;

  7. public class PushFrameInstr extends Instr implements FixedArityInstr {
  8.     private final String frameName;
  9.     public PushFrameInstr(String frameName) {
  10.         super(Operation.PUSH_FRAME);

  11.         this.frameName = frameName;
  12.     }

  13.     @Override
  14.     public Operand[] getOperands() {
  15.         return EMPTY_OPERANDS;
  16.     }

  17.     public String getFrameName() {
  18.         return frameName;
  19.     }

  20.     @Override
  21.     public Instr clone(CloneInfo ii) {
  22.         return ii instanceof SimpleCloneInfo ? this : NopInstr.NOP;  // FIXME: Is this correct?
  23.     }

  24.     @Override
  25.     public void visit(IRVisitor visitor) {
  26.         visitor.PushFrameInstr(this);
  27.     }
  28. }