public static final Address fetchAndAddAddressWithBound(Object base, int offset, int increment, Address bound) throws InlinePragma {
public static final Address fetchAndAddAddressWithBound(Address addr, int increment, Address bound) throws InlinePragma {
  public static final Address fetchAndAddAddressWithBound(Object base, int offset,                                                              int increment, Address bound) throws InlinePragma {    Address oldValue, newValue;    if (VM.VerifyAssertions) VM._assert(increment > 0);    do {      oldValue = VM_Magic.prepareAddress(base, offset);      newValue = oldValue.add(increment);      if (newValue.GT(bound)) return Address.max();    } while (!VM_Magic.attemptAddress(base, offset, oldValue, newValue));    return oldValue;  }