VM_Interface.resolvedPutfieldWriteBarrier(obj, offset, ref);
VM_Interface.putfieldWriteBarrier(obj, offset, ref);
  public final void setObjectValue(Object obj, Object ref) throws IllegalArgumentException {    if (VM.VerifyAssertions) VM._assert(isLoaded());    if ( ref != null ) {      VM_Type actualType = VM_Magic.getObjectType(ref);      boolean ok = false;      try {	ok = ((type == actualType) ||	      (type == VM_Type.JavaLangObjectType) ||	      VM_Runtime.isAssignableWith(type, actualType));      } catch (VM_ResolutionException e) {}      if (!ok) throw new IllegalArgumentException();    }    if (isStatic()) {      if (VM_Interface.NEEDS_WRITE_BARRIER) {	VM_Interface.resolvedPutStaticWriteBarrier(offset, ref);      }      VM_Statics.setSlotContents(offset>>>2, ref);    } else {      if (obj == null)	throw new NullPointerException();      if (!getDeclaringClass().getClassForType().isInstance(obj))	throw new IllegalArgumentException();      if (VM_Interface.NEEDS_WRITE_BARRIER) {	VM_Interface.resolvedPutfieldWriteBarrier(obj, offset, ref);      }      VM_Magic.setObjectAtOffset(obj, offset, ref);    }  }