public DexInstruction_StaticGetWide(
      DexCode methodCode, Instruction insn, DexCode_ParsingState parsingState)
      throws InstructionParsingException, UnknownTypeException {
    super(methodCode);

    if (insn instanceof Instruction21c && insn.opcode == Opcode.SGET_WIDE) {

      val insnStaticGet = (Instruction21c) insn;
      val refItem = (FieldIdItem) insnStaticGet.getReferencedItem();
      regTo1 = parsingState.getRegister(insnStaticGet.getRegisterA());
      regTo2 = parsingState.getRegister(insnStaticGet.getRegisterA() + 1);
      fieldClass =
          DexClassType.parse(
              refItem.getContainingClass().getTypeDescriptor(), parsingState.getCache());
      fieldType =
          DexRegisterType.parse(
              refItem.getFieldType().getTypeDescriptor(), parsingState.getCache());
      fieldName = refItem.getFieldName().getStringValue();

    } else throw FORMAT_EXCEPTION;

    Opcode_GetPutWide.checkTypeIsWide(this.fieldType);
  }