public class WideForm extends VariableInstructionForm
This class implements the byte code form for the wide instruction. Unlike other instructions, it can take multiple forms, depending on what is being widened.
  • Constructor Details

    • WideForm

      public WideForm(int opcode, String name)
      Constructs a new instance with the specified opcode, name, operandType and rewrite.
      Parameters:
      opcode - index corresponding to the opcode's value.
      name - String printable name of the opcode.
  • Method Details

    • setByteCodeOperands

      public void setByteCodeOperands(ByteCode byteCode, OperandManager operandManager, int codeLength)
      Description copied from class: ByteCodeForm
      Sets the rewrite of the byteCode.
      Specified by:
      setByteCodeOperands in class ByteCodeForm
      Parameters:
      byteCode - ByteCode to be updated (!)
      operandManager - OperandTable from which to draw info
      codeLength - Length of bytes (excluding this bytecode) from the beginning of the method. Used in calculating padding for some variable-length bytecodes (such as lookupswitch, tableswitch).
    • setByteCodeOperandsFormat1

      protected void setByteCodeOperandsFormat1(int instruction, ByteCode byteCode, OperandManager operandManager, int codeLength)
      This method sets the rewrite array for the bytecode using Format 1 of the JVM spec: an opcode and two index bytes. This is used for ?load/?store/ret
      Parameters:
      instruction - should be 132
      byteCode - the byte code whose rewrite array should be updated
      operandManager - the source of the operands
      codeLength - ignored
    • setByteCodeOperandsFormat2

      protected void setByteCodeOperandsFormat2(int instruction, ByteCode byteCode, OperandManager operandManager, int codeLength)
      This method sets the rewrite array for the bytecode using Format 2 of the JVM spec: an opcode, two index bytes, and two constant bytes. This is used for iinc.
      Parameters:
      instruction - int should be 132
      byteCode - ByteCode whose rewrite array should be updated
      operandManager - OperandManager source of the operands
      codeLength - ignored