docs: private void loadInstanceField(XField instanceField, Instruction obj) {
          if (RLE_DEBUG) {
              System.out.println("[loadInstanceField for field " + instanceField + " in instruction " + handle);
          }
  
          ValueNumberFrame frame = getFrame();
  
          try {
              ValueNumber reference = frame.popValue();
  
              AvailableLoad availableLoad = new AvailableLoad(reference, instanceField);
              if (RLE_DEBUG) {
                  System.out.println("[getfield of " + availableLoad + "]");
              }
              ValueNumber[] loadedValue = frame.getAvailableLoad(availableLoad);
  
              if (loadedValue == null) {
                  // Get (or create) the cached result for this instruction
                  ValueNumber[] inputValueList = new ValueNumber[] { reference };
                  loadedValue = getOutputValues(inputValueList, getNumWordsProduced(obj));
  
                  // Make the load available
                  frame.addAvailableLoad(availableLoad, loadedValue);
                  if (RLE_DEBUG) {
                      System.out.println("[Making load available " + availableLoad + " <- " + vlts(loadedValue) + "]");
                  }
              } else {
                  // Found an available load!
                  if (RLE_DEBUG) {
                      System.out.println("[Found available load " + availableLoad + " <- " + vlts(loadedValue) + "]");
                  }
              }
  
              pushOutputValues(loadedValue);
  
              if (VERIFY_INTEGRITY) {
                  checkConsumedAndProducedValues(obj, new ValueNumber[] { reference }, loadedValue);
              }
          } catch (DataflowAnalysisException e) {
              throw new InvalidBytecodeException("Error loading from instance field", e);
          }
      }