private static byte getField(OPT_Instruction s) {
private static DefUseEffect getField(OPT_Instruction s) {
  private static byte getField(OPT_Instruction s) {    if (CF_FIELDS) {      OPT_Operand ref = GetField.getRef(s);      if (ref.isNullConstant()) {        Trap.mutate(s, TRAP, NullCheck.getClearGuardResult(s),                    OPT_TrapCodeOperand.NullPtr());        return TRAP_REDUCED;      } else if(ref.isObjectConstant() &&                GetField.getLocation(s).getFieldRef().resolve().isFinal()) {        // A constant object references this field which is        // final. NB as the fields are final and have assigned        // values they must already have been resolved.        VM_Field field = GetField.getLocation(s).getFieldRef().resolve();        try {          OPT_ConstantOperand op = OPT_StaticFieldReader.getFieldValueAsConstant(field, ref.asObjectConstant().value);          Move.mutate(s, OPT_IRTools.getMoveOp(field.getType()),                      GetField.getClearResult(s), op);          return MOVE_REDUCED;        }        catch (NoSuchFieldException e) {          if (VM.runningVM) {            // this is unexpected            throw new Error("Unexpected exception", e);          } else {            // Field not found during bootstrap due to chasing a field            // only valid in the bootstrap JVM          }        }      }    }    return UNCHANGED;  }