int slot = field.getOffset() >>> 2; OPT_ClassLoaderProxy.StringWrapper sw = new OPT_RVMClassLoaderProxy.RVMStringWrapper(slot); return new OPT_StringConstantOperand(sw);
String val = (String)getObjectStaticFieldValue(field); return new OPT_StringConstantOperand(val, slot);
  public static OPT_ConstantOperand getStaticFieldValue(VM_Field field)     throws NoSuchFieldException {    if (VM.VerifyAssertions) VM.assert(field.isStatic());    VM_Type fieldType = field.getType();    if (fieldType.isIntLikeType()) {      int val = getIntStaticFieldValue(field);      return new OPT_IntConstantOperand(val);    } else if (fieldType.isLongType()) {      long val = getLongStaticFieldValue(field);      return new OPT_LongConstantOperand(val);    } else if (fieldType.isFloatType()) {      float val = getFloatStaticFieldValue(field);      return new OPT_FloatConstantOperand(val);    } else if (fieldType.isDoubleType()) {      double val = getDoubleStaticFieldValue(field);      return new OPT_DoubleConstantOperand(val);    } else if (fieldType == VM_Type.JavaLangStringType) {      int slot = field.getOffset() >>> 2;      OPT_ClassLoaderProxy.StringWrapper sw = new OPT_RVMClassLoaderProxy.RVMStringWrapper(slot);      return new OPT_StringConstantOperand(sw);    } else {      // TODO: Add array and scalar reference constant operands      throw new OPT_OptimizingCompilerException("Unsupported type");    }  }